您的位置:首页 > 编程语言 > C语言/C++

对于c++虚函数的理解

2014-06-13 13:52 239 查看
虚函数的定义,课本上讲的很明白,看了这个例子就一切都懂了

class Base

{

private:

int mNumber;

public:

Base(int i){mNumber =i;}

virtual void print( ) {cout << b_number << endl;}

};



class Derived : public Base

{

private:

int mNumber;

public:

Derived( int i) : Base(i){ };

void print( )

{

cout << 2*mNumber<< endl;

}

};

那么用Base的实例调用print,输出的就是i的值,用Derived的实例调用print,输出的就是2*i的值

简单地说,虚函数总是指向最后一个实现它的类。

可在使用中出现了问题:虚函数在基类构造函数中调用,不管重写多少次,基类都会运行原有的!

这可能是因为在子类初始化时同时调用了基类的构造函数,而基类的构造函数一定不会被覆盖。

就记住好了,使用虚函数最好不要在构造函数中使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: