1 Star 0 Fork 2

codes_test/cpp-Interview2

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
virtual_function.cpp 932 Bytes
一键复制 编辑 原始数据 按行查看 历史
ericps 提交于 2023-08-07 23:32 +08:00 . 添加虚基类和虚继承
//
// Created by pengshuai on 2022/3/8.
//
/**
* 基类指针指向继承类对象,则调用继承类对象的函数;
* int main()必须声明为Base类的友元,否则编译失败。 编译器报错: ptr无法访问私有函数。
* 当然,把基类声明为public, 继承类为private,该问题就不存在了。
*/
#include<iostream>
using namespace std;
/*class Derived;
class Base
{
private:
virtual void fun() { cout << "Base Fun"; }
friend int main();
};
class Derived: public Base
{
public:
void fun() override { cout << "Derived Fun"; }
};
int main()
{
Base *ptr = new Derived;
ptr->fun();
return 0;
}*/
class Derived;
class Base
{
public:
virtual void fun() { cout << "Base Fun"; }
};
class Derived: public Base
{
private:
void fun() override { cout << "Derived Fun"; }
};
int main()
{
Base *ptr = new Derived;
ptr->fun(); // Derived Fun
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/codes_test/cpp-interview2.git
git@gitee.com:codes_test/cpp-interview2.git
codes_test
cpp-interview2
cpp-Interview2
main

搜索帮助