函数调用点之前要看见函数声明,因为(1)要确定函数参数的类型和个数,实参和形参是否一致
(2)要确定函数返回值类型和返回值,看实参形参类型是否一致。
(3)根据返回值的类型和大小确定返回方式
对于C语言普通变量或结构体变量,小于等于4个字节,通过一个寄存器返回;小于等于8个字节,通过两个寄存器;大于8个字节才产生临时量。================================================================================================================================
一、优化规则:用临时对象构造同类型的新对象,不产生临时对象。
返回一个对象(值),一定会产生临时量,但是如果用临时对象构造同类型的新对象,临时对象不产生。
对象生存周期相关实例
(1)
(2)
(3)
(4)
(5)
二、代码最高效:
1.当一个函数返回一个对象时,应该直接返回一个临时对象,不要返回一个已经存在的对象。
2.当接受一个返回对象的函数的返回值时,应该选择初始化的过程,定义的时候直接得到返回值。
三、实参传递形参,可以用指针指向临时对象
普通情况,不可以用指针指向临时对象。 eg:Test *p=& test2(20);
不能返回局部变量或者临时量的指针或引用。
四、1.构造函数的初始化列表==》指定 成员变量的初始化方式
2.成员变量的初始化顺序,与定义的先后顺序有关,与它们在初始化列表中出现的先后顺序无关
3.常量必须初始化,常量的初始化必须写在初始化列表中。
4.引用必须初始化,引用变量的初始化必须写在初始化列表中
五、对象的生成:
(1)根据对象的类型,分配内存
(2)构造成员对象
(3)根据对象定义的方式,调用相应构造函数
六、
当出现引用变量时,编译器产生默认的赋值运算符的重载函数会出错。改变了引用变量的引用。
七、
.*和->* 通过函数指针调用成员方法时用到