条款45: 弄清C++在幕后为你所写、所调用的函数一个空类什么时候不是空类? ---- 当C++编译器通过它的时候。如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:class Empty{};和你这么写是一样的:class Empty {public: Empty(); // 缺省构造函数 Empty(const Empty& rhs); // 拷贝构造函数 ~Empty(); // 析构函 Read More
#include <iostream>#include <vector>#include <string>#include <exception>#include <stdexcept>#define TEST_THISusing namespace std;class Parent{public : virtual void say(){cout<<"parent"<<endl;}};class Son:public Parent{public : virtual void say(){c Read More