手写两个类,要体现构造,析构,拷贝构造,赋值,虚函数,重载函数等特点。
2017-07-30 14:59
531 查看
手写两个类,要体现构造,析构,拷贝构造,赋值,虚函数,重载函数等特点。
以前一直没有认真写过,这次认真写了一下,才发现容易出错的地方真的很多,记录一下。欢迎各位指正。
C++ Code
以前一直没有认真写过,这次认真写了一下,才发现容易出错的地方真的很多,记录一下。欢迎各位指正。
C++ Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | class CLASSBase { public: CLASSBase(); virtual ~CLASSBase();//析构函数 CLASSBase(const string s);//自定义构造函数 CLASSBase(const CLASSBase &);//拷贝构造函数 CLASSBase &operator = (const CLASSBase &);//赋值构造函数 virtual void show() { cout << "Show Base" << endl; } private: int a; string p_data; }; CLASSBase::CLASSBase() { a = 0; p_data = {}; } CLASSBase :: ~CLASSBase() {} CLASSBase::CLASSBase(const string s) { p_data = s; }; CLASSBase :: CLASSBase(const CLASSBase &other) { p_data = other.p_data; } CLASSBase &CLASSBase :: operator = (const CLASSBase &other) { if (this == &other)//自我认证 { return *this; } else { p_data = other.p_data; return *this; } } class DivClass : public CLASSBase { DivClass(); ~DivClass(); DivClass(const string pStr, const string pBase); DivClass(const DivClass &other); DivClass &operator = (const DivClass &other); void show(); private: string pD_data; }; DivClass::DivClass() { pD_data = {}; } DivClass :: ~DivClass() {} DivClass::DivClass(const string pStr, const string pBase) : CLASSBase(pBase) { if (pStr.size() != 0) { pD_data = pStr; } } DivClass::DivClass(const DivClass &other) : CLASSBase(other) { pD_data = other.pD_data; } DivClass &DivClass :: operator =(const DivClass &other) { CLASSBase :: operator =(other);//赋值函数必须显示的调用父类的赋值函数,否则不会去执行父类的赋值函数 if (this == &other) { return *this; } else { pD_data = other.pD_data; return *this; } } void DivClass::show() { cout << "Show Div" << endl; } |
相关文章推荐
- 20140413 拷贝、赋值构造 变量分配确定时期 子类指针与父类指针转化 虚函数
- 让我们一步一步实现一个完整的 String 类:构造、拷贝、赋值、移动和析构
- 继承中构造、析构 与 拷贝构造、赋值中的调用区别
- 结构体的构造、拷贝、赋值、析构和字符串的拷贝、构造、赋值和析构函数的比较
- 简单的String类(构造、拷贝构造、赋值构造、析构等)
- string的四个函数--构造、析构、拷贝、赋值
- 构造、拷贝(复制)构造、赋值构造以及析构
- 请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能。
- C++ 了解C++默默编写并调用哪些函数(构造 析构 拷贝构造 拷贝赋值)
- 类的基本成员函数实现(构造,拷贝构造,拷贝赋值,移动构造,移动赋值,析构)
- 继承中构造、析构 与 拷贝构造、赋值中的调用区别
- String类简单实现(构造、拷贝构造、析构、赋值、输出、比较、字符串加、长度、子串)
- 类构造,析构,赋值,拷贝
- 请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能
- Effective C++读书笔记(二)构造、析构、赋值
- 构造 析构 虚函数
- 深入理解C++构造、析构、赋值操作
- c++构造,拷贝构造,拷贝赋值,移动构造,移动赋值
- 关于对象的构造、复制构造、析构、赋值的问题
- Effective C++ 笔记2(构造,析构,赋值)