标签:函数调用 复制构造 转换 临时对象 学习 test 对象 ble 定义
class A{
public:
double real,imag;
A(int i){ //(1)类型转换构造函数
cout<<"called"<<endl;
real=i;imag=0;
}
A(double r,double i){
real=r;imag=i;}//(2)构造函数
};
int main()
{
A c1(7,8);//调用(2),此时c1={7,8}
A c2=12;//调用(1),此时c2={12,0}
c1=9;//调用(1),9被自动转换成一个临时A对象,此时c1={9,0}
cout<<c1.real<<","<<c1.imag<<endl;
return 0;
}
~
,没有参数和返回值,一个类最多只有一个析构函数class test{
pulic:
~test(){
cout<<"called"<<endl;}
};
int main(){
test array[2]//两个元素
cout<<"end main"<<endl;
return 0;
}
end main
called
called
test *ptest;
ptest=new test;//构造函数被调用
delete ptest;//析构函数被调用
----
ptest=new test[3];//构造函数被调用3次
delete []ptest;//析构函数被调用3次
class A{
public:
~A(){
cout<<"destructor"<<endl;}
};
A obj;//3.整个程序结束后,全局变量消亡
A fun(A sobj){//1.参数对象消亡(形参消亡)
return sobj;}
int main(){
obj=fun(obj);//2.函数调用返回值(临时对象)被用过后消亡
return 0;
}
destructor//1
destructor//2
destructor//3
标签:函数调用 复制构造 转换 临时对象 学习 test 对象 ble 定义
原文地址:https://www.cnblogs.com/2002ljy/p/12251837.html