一.引用 引用是别名 必须在定义引用时进行初始化.初始化是指明引用指向哪个对象的唯一方法. const 引用是指向 const 对象的引用: ; const int &refVal = ival; // ok: both reference and object are const int &ref2 = ival; // error: non const reference to a const object 可以读取但不能修改 refVal ,因此,任何对 refVal 的赋值都是不合
1对内建类型来说,按值返回的是否为const,是无关紧要的,因为编译器已经不让它成为一个坐直,因为它总是一个值,而不是一个变量(thing in c++ page192) 2当处理用户自定义的类型时,按值返回常量是非常重要的,如果一个函数按值返回一个类对象为const时,那么这个返回值不能是一个左值(即它不能被复制,也不能调用非const函数) #include<iostream> #include<fstream> using namespace std; class X{ in
函数调用时,形参对象和返回对象均采用引用方式进行(临时对象作为中介),当一个对象作为参数(非引用)被函数调用时,该对象会通过复制构造函数获得一个临时对象,该临时对象以引用方式传递给函数,简言之,函数会被做以下处理: void foo(A x); A a foo( a); 处理后:void foo(A& x); A a A x(a): foo(x); 而返回值则根据不同的函数调用方式来进行不同程度的优化,如下面的调用方式,会直接将对象b作为引用传递给函数bar: A bar(); A b = ba