分类: C/C++
2007-05-12 08:19:36
#include #include class Person { private: char* _name; public: Person() { _name = new char[256]; } void SetName(const char* name) { if(strlen(name) + 1 < 256) strcpy(_name,name); } void PrintName() { printf("%s\n",_name); } }; int main() { // 创建对象的第一个实例并赋于名字为John Person p1; p1.SetName("John"); p1.PrintName(); //通过复制p1引用的对象创建另一个对象 Person p2(p1); p2.SetName("Alice"); p2.PrintName(); //现在再输出p1的名字 p1.PrintName(); scanf("q"); return 0; } |
class Person { private: char* _name; public: Person() { _name = new char[256]; } // 这是拷贝构造函数。在此我们初始化一个新的数组,为Person的实例所用 Person(Person&) { _name = new char[256]; } void SetName(const char* name) { if(strlen(name) + 1 < 256) strcpy(_name,name); } void PrintName() { printf("%s\n",_name); } }; |