首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

找工作笔试口试那些事儿(5)-构造函数、析构函数和赋值函数

2013-09-05 
找工作笔试面试那些事儿(5)---构造函数、析构函数和赋值函数类的构造函数、析构函数与赋函数学过C的人都说自

找工作笔试面试那些事儿(5)---构造函数、析构函数和赋值函数

类的构造函数、析构函数与赋值函数

      学过C++的人都说自己知道构造函数、析构函数与赋值函数。它们看似太普通,以致让人容易麻痹大意,但请你认真读完这部分内容,你会发现这些貌似简单的函数实则像没有顶盖的下水道那样危险。

      每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如

class Base { public: …Base & operate =(const Base &other); // 类Base的赋值函数private: int m_i, m_j, m_k; }; class Derived : public Base { public: …Derived & operate =(const Derived &other);  // 类Derived的赋值函数private: int m_x, m_y, m_z; }; Derived & Derived::operate =(const Derived &other) { //(1)检查自赋值if(this == &other) return *this; //(2)对基类的数据成员重新赋值Base::operate =(other);  // 因为不能直接操作私有数据成员//(3)对派生类的数据成员赋值m_x = other.m_x; m_y = other.m_y; m_z = other.m_z; //(4)返回本对象的引用return *this; } 


热点排行