gpt4 book ai didi

c++ - 了解 C++ 中的复制构造函数

转载 作者:行者123 更新时间:2023-11-30 02:38:45 25 4
gpt4 key购买 nike

<分区>

我想了解 C++ 中复制构造函数的概念。我编写了以下程序:

#include<iostream>
using namespace std;

class Box{
private:
int d;
public:
Box(int i){
cout << "Constructor" << endl;
d = i;
}
Box(const Box &old){
cout << "Copy Constructor" << endl;
d = old.d;
}
int getd(){
return d;
}
~Box(){
cout << "Destructor" << endl;
}
Box operator+(const Box& op){
Box c(15);
c.d = d + op.d;
return c;
}
};

int main(){
Box a(10);
Box b = a;
Box c = a+b;
cout << c.getd() << endl;
return 0;
}

这个程序的输出如下:

Constructor
Copy Constructor
Constructor
20
Destructor
Destructor
Destructor

我不明白为什么没有在 main 函数的第三行调用复制构造函数。我认为应该调用复制构造函数,因为 operator+ 函数按值返回。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com