f0917.cpp
来自「C++程序设计教程(第二版)源代码 钱能编著」· C++ 代码 · 共 40 行
CPP
40 行
//=====================================
// f0917.cpp
// copy constructor
//=====================================
#include<iostream>
using namespace std;
//-------------------------------------
class Person{
char* pName;
public:
Person(char* pN="noName"){
cout<<"Constructing "<<pN<<"\n";
pName = new char[strlen(pN)+1];
if(pName) strcpy(pName,pN);
}
Person(const Person& s){
cout<<"copy Constructing "<<s.pName<<"\n";
pName = new char[strlen(s.pName)+1];
if(pName) strcpy(pName, s.pName);
}
Person& operator=(Person& s){
cout<<"Assigning "<<s.pName<<"\n";
if(this==&s) return s;
delete[] pName;
pName = new char[strlen(s.pName)+1];
if(pName) strcpy(pName,s.pName);
return *this;
}
~Person(){
cout <<"Destructing "<<pName<<"\n";
delete[] pName;
}
};//-----------------------------------
int main(){
Person p1("Randy");
Person p2("Jenny");
p2 = p1;
}//====================================
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?