C++程序执行结果分析,构造函数,析构函数,复制构造函数的执行顺序问题

2024-12-03 10:42:25
推荐回答(2个)
回答(1):

void main()
{
point m(15,40),p(0,0);//两次构造出现两次calling the constructor function.
point n(m);//拷贝构造进行一次出现一次calling the copy_initialization constructor function.
p=move(n);//先构建临时的一个对象,再将n拷贝给这个临时对象执行一次calling the copy_initialization constructor function.
再执行move函数中内容输出ok!构建一个point r输出一次calling the constructor function.
然后move函数调用完成销毁临时对象输出一次calling the destructor function.销毁对象r输出一次calling the destructor function销毁原来的那个赋给临时对象的类输出一次calling the destructor function
再返回一个r赋值给p
输出计算够的坐标p=25,60销毁最开始创建的三个对象中的数据三次虚构
不懂再问及时采纳

回答(2):

1,顺序:先构造函数,后析构函数
构造函数可以有多个。
如你程序中的point(int a,int b) 和point(point &p);
2,友元访问的时候,可以直接访问成员的变量。
3,复制构造函数应该是建立新的对象的过程。