摘要:
运算符重载函数既可以声明为类的成员函数,也可以声明为所有类之外的全局函数。 运算符重载函数作为类的成员函数 将运算符重载函数声明为类的成员函数时,二元运算符的参数只有一个,一元运算符不需要参数。之所以少一个参数,是因为这个参数是隐含的。 例如,上节的 complex 类中重载了加法运算符: 当执行: 阅读全文
摘要:
所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。 实际上,我们已经在不知不觉中使用了运算符重载。例如,"+"号可以 阅读全文
摘要:
在C++中,可以将成员函数声明为纯虚函数,语法格式为: 纯虚函数没有函数体,只有函数声明,在虚函数声明结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。 包含纯虚成员函数的类称为抽象类(Abstract Class)。之所以说它 阅读全文
摘要:
在C++中,构造函数用于在创建对象时进行初始化工作,不能声明为虚函数。因为在执行构造函数前对象尚未创建完成,虚函数表尚不存在,也没有指向虚函数表的指针,所以此时无法查询虚函数表,也就不知道要调用哪一个构造函数。下节会讲解虚函数表的概念。 析构函数则用于在销毁对象时完成相应的资源释放工作,可以被声明为 阅读全文