虚拟函数问题(c++ primer)
翻阅c++ premier时发现一个问题编译环境:vc 6.0
问题描述:在<c++ primer>p477:派生类中虚函数的声明必须与基类中的定义方式完全匹配,但是有一个例外:返回对基类型的应用(或指针)的虚函数。派生类中的虚函数可以返回基类函数所返回类型的派生类的引用(或指针)。
在p507给出了类似如下的一个例子:
class Base
{
public:
virtual Base *clone() const {return new Base(*this);}
} ;
class Derived: public Base
{
public:
Derived* clone() const{return new Derived(*this);}
} ;编译器报错:
error C2555: 'Derived::clone' : overriding virtual function differs from 'Base::clone' only by return type or calling convention当然将Derived class中的clone()函数返回值改为Base*是可以的。
但是我的目的不时说想解决这个编译错误。
我的问题:是<c++ primer>搞错了,还是vc 6.0弄错了?
...全文
相关推荐
vmm_primers.tar.gz_Windows编程_Others_
在这个目录下,我们可以期待找到如C++或C语言的源代码文件(.cpp、.c),头文件(.h),构建脚本(Makefile,MSBuild文件等),以及测试用例(.test、.spec等)。
掌握编程核心概念:UML与C++关键字解析
本文旨在通过简要回顾《C++ Primer》中的一些核心编程概念,特别是统一建模语言(UML)和C++的关键字,为编程学习者提供一个实用的学习指南。通过梳理UML图和C++中重要的关键字如一元运算符、虚拟函数、可见性模式等,我们能够更好地理解编程语言的结构和设计原则。
C++学习经验
#### 五、深入学习:语法掌握与库函数理解- **语法细节**:《标准C++宝典》是一本全面介绍C++语法细节的书籍,有助于深入理解语言特性。
linuxc语言-新手看招
编译工具**- **gcc**:这是最常用的C语言编译器之一,支持多种语言编译,包括C、C++等。
深度探索C++对象模型读书笔记
- **虚拟继承**:虚拟继承引入了虚基类指针,以解决钻石问题等多重继承带来的问题。#### 五、函数的语义函数是对象模型中不可或缺的一部分,了解其工作原理有助于更好地掌握C++。


