定义一个类:
class Text1{
public:
Text1() {
pub = 0;
pri = 0;
pro = 0;
cout << "Text1的默认构造函数调用" << endl;
}
Text1(int b, int i, int o) {
pub = b;
pri = i;
pro = o;
cout << "Text1的重载构造函数调用" << endl;
}
Text1(const Text1& p) {
pub = p.pub;
pri = p.pri;
pro = p.pro;
cout << "Text1的拷贝构造函数调用" << endl;
}
~Text1() {
cout << "Text1的析构函数调用" << endl;
}
int pub;
int getValue(int);
private:
int pri;
protected:
int pro;
};
程序主体代码:
void text1(Text1 p) {
}
int main(){
Text1 A(10, 20, 30);
cout << "\n**** 代码结束 ****" << endl;
return 0;
}
此时的输出是
这是一个最基本的类的开辟回收过程。
当我们调用空实现函数text1(Text1 p)并将A作为值传递进去时
void text1(Text1 p) {
}
int main(){
Text1 A(10, 20, 30);
text1(A);
cout << "\n**** 代码结束 ****" << endl;
return 0;
}
输出为
此时在A构造函数调用后,多了一个Text1的拷贝构造和析构,也就是函数text1(Text1 p)中p的实例化和此函数结束时系统回收动作的析构函数调用。