构造函数、析构函数、复制构造函数的调用
#include <iostream>
using namespace std;
class A {
public:
A() {
cout << "构造函数调用" << endl;
}
A(const A &a) {//不加const会报错
cout << "复制构造函数调用" << endl;
}
A& operator=(const A&a) {//不加const会报错
cout << "重载的复制构造函数调用" << endl;
return *this;
}
~A() {
cout << "析构函数调用" << endl;
}
};
A function() {
A x;
return x;
}
int main()
{
system("color fc");//调控制台背景色
A b = function();
cout << "----------" << endl;
return 0;
}
image.png
#include <iostream>
using namespace std;
class A {
public:
A() {
cout << "构造函数调用" << endl;
}
A(const A &a) {//不加const会报错
cout << "复制构造函数调用" << endl;
}
A& operator=(const A&a) {
cout << "重载的复制构造函数调用" << endl;
return *this;
}
~A() {
cout << "析构函数调用" << endl;
}
};
A function() {
return A();
}
int main()
{
system("color fc");//调控制台背景色
A b = function();
cout << "----------" << endl;
return 0;
}
image.png
#include <iostream>
using namespace std;
class A {
public:
A() {
cout << "构造函数调用" << endl;
}
A(const A &a) {
cout << "复制构造函数调用" << endl;
}
A& operator=(const A&a) {
cout << "重载的复制构造函数调用" << endl;
return *this;
}
~A() {
cout << "析构函数调用" << endl;
}
};
A function(A x) {
return x;
}
int main()
{
system("color fc");//调控制台背景色
A b = function(A());
cout << "----------" << endl;
return 0;
}
image.png
#include <iostream>
using namespace std;
class A {
public:
A() {
cout << "构造函数调用" << endl;
}
A(A &a) {
cout << "复制构造函数调用" << endl;
}
A& operator=(const A&a) {
cout << "重载的复制构造函数调用" << endl;
return *this;
}
~A() {
cout << "析构函数调用" << endl;
}
};
A function_1(A x) {
return x;
}
A function_2() {
A x;
return x;
}
int main()
{
system("color fc");//调控制台背景色
A a;
cout << "----------" << endl;
function_1(a);
cout << "----------" << endl;
A b;
b = function_2();
cout << "----------" << endl;
function_2();
cout << "----------" << endl;
return 0;
}
image.png
#include <iostream>
using namespace std;
class A {
public:
A() {
cout << "构造函数调用" << endl;
}
A(A &a) {
cout << "复制构造函数调用" << endl;
}
A& operator=(const A&a) {
cout << "重载的复制构造函数调用" << endl;
return *this;
}
~A() {
cout << "析构函数调用" << endl;
}
};
A function_3(A y) {
A x;
return x;
}
int main()
{
system("color fc");//调控制台背景色
A c;
A d;
c = function_3(d);
cout << "----------" << endl;
return 0;
}
image.png