C++面试题1.是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,仅仅事派生类没有訪问权限而已virtual可加可不加子类的空间里有父类的全部变量(static除外)同一个函数仅仅存在一个...
分类:
编程语言 时间:
2014-06-27 21:02:04
阅读次数:
235
首先,此处的函数指的是 virtual 函数,为什么不是non-virtual函数呢?是因为在public继承中,non-virtual函数表示派生类是需要继承其接口与其强制实现的。如果你的Derived已经在考虑重写non-virtual函数了,那么你是应该好好审视一下,在此处使用 public继承是否合理了。
因此,本文只讲解virtual函数的缺省参数值,例如下面的代码:
{CSDN...
分类:
其他好文 时间:
2014-06-25 07:33:08
阅读次数:
185
请注意:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class。
分类:
编程语言 时间:
2014-06-16 13:42:35
阅读次数:
349
请记住:(1)polymorphic(带多态性质的)base classes应该声明一个virtual析构函数。如果class声明一个virtual函数,它就应该拥有一个virtual析构函数。(2)class的设计目的如果不是作为base classes使用,或不是为了具备多态,就不应该声明vir...
分类:
编程语言 时间:
2014-06-14 20:19:05
阅读次数:
221
虚函数与纯虚函数:
虚函数:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,virtual 函数返回类型 函数名(参数表){函数体;}
,实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。注意虚函数在基类中是有定义的,即便定义是空。 纯虚函数...
分类:
编程语言 时间:
2014-05-31 18:36:09
阅读次数:
354
经验:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class(比起当前执行构造函数和析构函数的那层)。
让derived class将必要的构造信息向上传递至baseclass构造函数...
分类:
编程语言 时间:
2014-05-25 09:52:25
阅读次数:
237
本文主要参考《Effective C++
3rd》中的第六章部分章节的内容。关注的问题集中在继承、派生、virtual函数等。如:virtual? non-virtual? pure virtual?
缺省参数值与virtual函数有什么交互影响? 继承如何影响C++的名称查找规则? 什么情况下有比...
分类:
编程语言 时间:
2014-05-24 01:20:31
阅读次数:
468
#include
#include
using namespace std;
class Base
{
public:
Base(){}
~Base(){}
public:
virtual void f1(int x){ cout "baseclass: f1() " x << endl; }
virtual void f2()final{ cout "baseclass: f2() "...
分类:
编程语言 时间:
2014-05-15 08:11:39
阅读次数:
271
在public继承中,(public 继承表示的关系是 “is a ” 的关系),其类中定义的函数主要有三类:pure virtual函数,impure virtual函数以及non-virtual函数,这三种函数决定了public继承中的两个重要概念 : “ 函数接口继承” 以及 “函数实现继承”。那么接下来将针对这样一个不简单的问题做一些简介。
考虑如下的类定义:
class Shape...
分类:
其他好文 时间:
2014-04-27 18:29:13
阅读次数:
526