23. 在函数调用时,传引用也是将指针压栈。
24. 构造函数、析构函数、赋值构造函数、重载的=,四者的调用顺序:(三种函数都已实现)
a) X x; X a=x;
result:
X:construct
X:copy_struct
b) X x; X a; a=x;
Result:
X:construct
X:construct
X:copy_stru
operator =
X:destruct
假如没有赋值构造函数则结果:
X:construct
X:construct
operator =
X:destruct
(假如直接X a=x;这不掉用一般的构造函数,调用复制构造函数)
指向类的成员函数的指针:设 int X:: a(void){}
X x;
int (X:: *pf)(void)= &X::a;
(x.*pf)();
指向成员变量的指针: 设int i; 是X的成员变量
int X::*pm = &X::i;
X x;
x.*pm=12;
文章整理:西部数码--专业提供域名注册、虚拟主机服务
X *p=&x;
p->*pm=11;
25. 的操作符重载
const X& operator () // b; const X operator (int ) //b
其中的第二个参数为哑元,永远也不使用到。
26.自动类型转换
a.) class one{ b} class two{
public: one(){} public: two(const one &){}
}; };
void f(two) {}
main(){ one ONE; f(ONE); }
此时会调用two中的一个构造函数进行类型的自动转换。但效率不高。能够阻止隐含的类型转换。方法如下:将类two给为
class two{ public: explicit two(const one &){} };
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



