设为首页 加入收藏

TOP

EffectiveC++学习笔记-条款36|37
2017-07-28 10:22:13 】 浏览:5183
Tags:EffectiveC 学习 笔记 条款

条款36 决不重新定义继承而来的non-virtual函数
条款37 决不重新定义继承而来的缺省参数值

决不重新定义继承而来的non-virtual函数

正常情况下non-virtual的函数就应该是被设计的目的之一就是为了不能让子类重写。
看个简单例子:

class Base
{
public:
    oid print()
    {
        cout << "Base:Print" << endl;
    }
};

class Derived : public Base
{
public:
    void print()
    {
        cout << "Derived:Print" << endl;
    }
};

int main()
{
    Base* pb = new Base;
    Base *pd = new Derived;

    pb->print();
    pd->print();
    while (1) {}
    return 0;
}
//打印结果
Base:Print
Base:Print

这应该不是我们想要的结果,如果是non-virtual一定不要重写,需要重写的不要设计成non-virtual。

待续~!

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++之模板元编程 下一篇利用c++类和对象建立学生成绩管理..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目