文档章节

C++构造函数调用虚函数的后果

o
 osc_zoa3moe9
发布于 2019/12/07 21:51
字数 129
阅读 11
收藏 0

精选30+云产品,助力企业轻松上云!>>>

#include <iostream>

class cx {
public:
    virtual void func() {
        std::cout << "func" << std::endl;
    }
    cx() {
        func(); //构造函数中调用虚函数,语法上OK,效果上不对,因为当对象由子类进入基类构造时是基类类型的
        //不管如何调用,总只能调用到基类的虚函数,无法调用到子类的虚函数,见下面测试
    }

};

class cb : public cx {
    void func() {
        std::cout << "cb.func" << std::endl;
    }
};
int main()
{
    cx ox; //func
    cb ob; //func

    cx* pox = new cb(); //func
    pox->func(); //cb.func
}

 

o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
C++中的new/delete、构造/析构函数、dynamic_cast分析

1,new 关键字和 malloc 函数区别(自己、功能、应用): 1,new 关键字是 C++ 的一部分: 1,如果是 C++ 编译器,则肯定可以用 new 申请堆空间内存; 2,malloc 是由 C 库提供的函数: 1,如...

osc_czmaebyq
2019/05/24
2
0
C++ 面试题

首先郑重声明,这些面试题的答案都是参考网上的答案和自己理解的部分整合起来,如有错误,欢迎指正。 1 多态的实现 虚表构建图 虚函数表中有序放置了父类和子类中的所有虚函数,并且相同虚函...

阿卡基YUAN
02/19
0
0
C++ 多态的实现及原理

C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对...

osc_sdo8al3q
2018/09/12
0
0
C++语言细节

猜一猜上面输出结果是什么呢?是的,你猜对了! C++多态实现及原理 C++ 多态的实现原理与内存模型 多态在C++中是一个重要的概念,通过虚函数机制实现了在程序运行时根据调用对象来判断具体调...

wqli
2019/10/23
0
0
C++基础知识汇总

C到C++的升级 ① C与C++的关系 (1)C++继承了所有的C特性 (2)C++在C的基础上提供了更多的语法和特性 (3)C++的设计目标是运行效率与开发效率的统一 注:C++顾名思义是对C语言的加强,加强...

osc_q9huomuf
2018/07/08
4
0

没有更多内容

加载失败,请刷新页面

加载更多

Xcode中的版本与版本 - Version vs build in Xcode

问题: I have an app that I developed with Xcode 3 and recently started editing with Xcode 4. In the target summary I have the iOS application target form with fields: identifie......

javail
15分钟前
7
0
如何在Python中将字典键作为列表返回? - How to return dictionary keys as a list in Python?

问题: In Python 2.7 , I could get dictionary keys , values , or items as a list: 在Python 2.7中 ,我可以将字典键 , 值或项作为列表获取: >>> newdict = {1:0, 2:0, 3:0}>>> newd......

技术盛宴
今天
17
0
2020世界人工智能大会开幕首日 百度与浦发银行达成战略合作

本文作者:y****n 7月9日,2020世界人工智能大会开幕首日,百度与浦发银行签署战略合作协议,将在人工智能、金融科技等多个领域进一步深化合作。双方将优势互补,实现人工智能技术在金融领域...

百度开发者中心
昨天
26
0
Java中C ++ Pair 的等价物是什么? - What is the equivalent of the C++ Pair in Java?

问题: Is there a good reason why there is no Pair<L,R> in Java? 有没有一个很好的理由说明Java中没有Pair<L,R> ? What would be the equivalent of this C++ construct? 这个C ++构造的......

富含淀粉
今天
18
0
中国饭店协会数据表明

记者了解到,中国饭店协会数据表明,2018年全国餐饮收入42716亿元,同比增长9.5%.根据国家统计局数据显示,截至2017年底,限额以上餐饮行业的从业人数达到2232万人,巨大的餐饮市场背后,餐饮行业的...

asd369
今天
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部