当前位置: 首页 > backend >正文

c++ 类的语法4

测试析构函数、虚函数、纯虚函数:

void testClass5() {class Parent {public:Parent(int x) { cout << "Parent构造: " << x << endl; }~Parent() {cout << "调用Parent析构函数" << endl;}virtual string toString() { // 虚函数return "i am Parent";}virtual int getAge() const = 0; // =0 标记为纯虚函数};class Child : public Parent {private:int a;string b;public:// 调用父类构造 + 初始化子类成员Child(int x, int val, const string& s) : Parent(x), a(val), b(s) {cout << "Child构造: " << a << ", " << b << endl;}~Child() {cout << "调用Child析构函数" << endl;}string toString() override {return "i am Child";}int getAge() const override {return 18;}};Child child(10, 20, "hello");cout << "child toString:" << child.toString() << endl;cout << "child getAge:" << child.getAge() << endl;Parent* parent = &child;cout << "parent toString:" << parent->toString() << endl;cout << "parent getAge:" << parent->getAge() << endl;
}

打印:

可见,析构函数的调用顺序是和构造函数的调用顺序相反的。另外,纯虚函数有点像java的抽象方法。

http://www.xdnf.cn/news/6638.html

相关文章:

  • 我用 Appuploader绕过 Mac,成功把 iOS 应用上线了 App Store
  • 51单片机串口
  • 现场血案:Kafka CRC 异常
  • HANA数据库死锁
  • PYTHON训练营DAY27
  • qt5.14.2 opencv调用摄像头显示在label
  • CS016-4-unity ecs
  • MySQL查询不区分大小写问题剖析
  • 58. 区间和
  • Multimodal models —— CLIP,LLava,QWen
  • java输入输出类
  • MySQL MCP 使用案例
  • ubuntu 更新华为源
  • windows下authas调试tomcat
  • 突发,苹果发布下一代 CarPlay Ultra
  • WEB安全--Java安全--shiro721反序列化漏洞
  • 快速选择算法:优化大数据中的 Top-K 问题
  • 本土DevOps革命:Gitee如何撬动中国企业的数字化转型新动能
  • ssti刷刷刷
  • 使用 LSTM/GRU 预测设备异常的模型
  • 【HTML5学习笔记2】html标签(下)
  • Java视频流RTMP/RTSP协议解析与实战代码
  • PCL 计算一条射线与二次曲面的交点
  • 西安前端面试
  • YOLO+UI(C#)开发
  • 基于React的高德地图api教程006:两点之间距离测量
  • 大规模CFD仿真计算中,SIMPLE或者PISO算法中加速压力场方程迭代求解
  • SZU 编译原理
  • BASE理论
  • 四、xlib区域