首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关构造函数的有关问题

2012-04-01 
有关构造函数的问题C/C++ codeclass B{public:B(){coutdefault constructorendl}~B(){coutdestr

有关构造函数的问题

C/C++ code
class B{public:B(){cout<<"default constructor"<<endl;}~B(){cout<<"destructed"<<endl;}B(int i):data(i)    //B(int) works as a converter ( int -> instance of  B){cout<<"constructed by parameter " << data <<endl;}private:int data;};B Play( B b) {return b ;}                                   void main(){B t1 = Play(5); B t2 = Play(t1); }

play的参数是B,直接传一个5进去,这个为什么不会报错??

然后结果是:

esults:
int main(int argc, char* argv[]) constructed by parameter 5
{ destructed B(5)形参析构
B t1 = Play(5); B t2 = Play(t1);   destructed t1形参析构
return 0;               destructed t2 注意顺序!
} destructed t1
谁能稍微解释一下,谢谢

[解决办法]
constructed by parameter 5 //这里进行了隐士的转换
destructed //2次默认拷贝的析构
destructed //2次带参数构造析构
destructed
destructed

热点排行