摘要:
先给出文字说明,然后再给出代码解释: 如果我们决定改写基类所提供的虚拟函数,那么派生类所提供的新定义,其函数型别必须完全符合基类所声明的函数原型,包括:参数列、返回型别、常量性(const-ness)。 下面给出程序说明:基类num_sequence中声明虚拟函数what_am_i(),派生类中改写该函数。 1、正确的写法 1.1 基类的声明1 #pragma once2 3 class num_sequence4 {5 public:6 num_sequence(void);7 virtual const char* what_am_i() const { ret... 阅读全文
摘要:
之前也知道引用和指针的区别,但如果现在让我说他们两个有什么区别,我还是不太能全部说出来,(红色标记一下:引用和指针的异同有哪些?)之所以不能说出他两的区别,不是因为我记忆力不好,而是没有过实际代码的体验。在看Essential C++时,碰到下面的代码,感觉能够说明一些他两的用法。下面给出代码和书上的说明:首先说明一下这里基类num_sequence和子类Fibonacci的目的。基类是一系列不同类型数列的抽象,比如斐波那契数列等等(这里仅以Fibonacci来举例说明子类)。先给出第一次设计基类和子类的代码:(第一次设计时基类不保存具体的数列Vector,只是一些子类抽象出来的函数)1 .. 阅读全文