重载 与常量引用

void print(int a,int b,int =0){

cout<<"执行三个参数的"<<endl;

}

void print(int a,int b){

cout<<"执行两个参数的"<<endl;

}

//以上两个,在使用函数print(3,5);//error:ambiguous call to overloaded function


void print(int a){//注意返回类型

cout<<"ni"<<endl;

}

int print(int a){

return a;

}

void main(){

int a=3;

//print(8);注意函数返回类型不是函数重载的判断标准。所以报错:redefinition

const int f=4;

//int &g=f;不可把常量赋给int型引用

//int &c=3;不可把常量赋给int型引用

int &b=a;

const int &d=3;//可以给常量引用赋以常量

const int &e=a;

a++;//a可以修改

//e++;但是定义为常量引用的e就不可以修改。

return ;

}

时间: 2024-10-25 19:44:38

重载 与常量引用的相关文章

引用专题(续)=》 常量引用

常引用分两点: 1 使用变量初始化const引用 const int &a = b 2 使用字面量常量初始化const引用  const int &m = 10: #include <iostream> using namespace std; void main() {     //普通引用     int a = 10;     int &b = a;     printf("b"%d\n",b);               //常引

对const的引用(常量引用)

引用的类型必须与其所引用对象的类型一致.但是,对const的引用是第一种例外情况. 对const的引用,常简称为"常量引用". 常量引用的初始值可以是任意表达式,只要该表达式的结果能转换成引用的类型即可. 但是,对于字面值,一般表达式以及与常量引用类型不一致的对象作为常量引用的初始值,常量引用实际绑定到了临时变量上.测试代码如下: 1 #include <iostream> 2 3 int main() 4 { 5 int i = 42; 6 int &r1 = i

const常量引用的使用方法

C++编程语言中,对于常量的引用是一个非常重要的应用技巧.在这篇文章中,我们将会为大家详细介绍一下有关C++常量引用的相关应用方法,相信大家可以从中学到很多知识. C++单例模式基础内容详解 C++创建Web服务相关方法剖析 C++构造函数如何进行初始化 C++标识符命名规则相关应用技巧分享 C++函数模板基本概念讲述 如果是对一个常量进行引用,则编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作.对C++常量引用可以用其它任何引用来初始化:但不能改

常量引用 const T&amp;

1.引用本身不是对象,只是引用对象的别名,没有内存空间产生 2.引用必须严格类型匹配 3.而常量引用 const T& 可以引用字面值常量及表达式 其实也就是右值,且常量引用的不同与T类型对象时,如果可以类型转换则会类型转换为T类型常量引用,不过会产生临时变量(C++ Primer): code: double d=25.0; const int& a=d; implicit code: double d=25.0; const int temp=d; const int& a=t

C++ 常量引用与临时变量

由 <<C++ Primer>> 练习7.49 (b) 产生出来的小问题. 总结: 1.不要对临时变量进行改变.要传递临时变量,得用常量引用. 2. 当引用不需要更改时,用const引用. 问题: struct Sales_data { Sales_data() = default; Sales_data(std::string &str){} Sales_data& combine( Sales_data&); }; Sales_data& Sal

C++ 常量引用

普通引用为形参的函数,一般会更改实参的值:以常量以及常量引用为形参的函数,一般不对实参进行修改. 常量引用兼有常量和引用的优点.不会新创建一个变量然后进行拷贝,而是直接传对象,速度快,同时保证了在函数内部无法对对象进行修改. 通常,引用的类型必须和所引用的类型一致,但常量引用在类型不匹配时,编译器首先建立一个临时变量,然后将该常量的值置入临时变量中,对该引用的操作就是对该临时变量的操作.普通引用则没有这样的过程. 这个过程的一个作用是让不匹配的类型隐式转换成需要的常量类型.一个典型的例子如下:

操作符重载之解引用与箭头操作符

箭头操作符与众不同.它可能表现得像二元操作符一样:接受一个对象和一个成员名,对对象解引用以获取成员.不管外表如何,箭头操作符不接受显式形参.这里没有第二个形参,因为 -> 的右操作数不是表达式,相反,是对应着类成员的一个标识符.没有明显可行的途径将一个标识符作为形参传递给函数,相反,由编译器处理获取成员的工作. 理解1 当这样编写时:point->action();由于优先级规则,它实际等价于编写:(point->action)();换句话说,我们想要调用的是对 point->ac

类初始化 常量引用

class ConstClass{ static { System.out.println("ConstClass init"); } public static final String HELLOWORLD = "hello world";}class NotInitialzation{ public static void main(String[] args){ System.out.println(ConstClass.HELLOWORLD); //只是输

[转载]非常量引用的初始值必须为左值的问题

首先,先看下面一个例子: eg.1 #include<</span>iostream> usingnamespace std; int main(){ int i =2; double &r =i; return 0; } gcc error: invalid initialization of reference of type 'double&' from expression of type 'int' 如果改成 const double &r =i;