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

C++ 面向对象编程:多继承、多态

多继承就是同时继承多个类,如果是重名的话,也需要进行对应的处理,见以下代码示例:

#include<iostream>
using namespace std;

class cA {
public:
	int a;
	int b;
	cA():a(0),b(3){}
};

class cB {
public:
	int c;
	int b;
	cB() :c(0), b(1) {}
};

class cC {
public:
	int f;
	cC() : f(2) {}
};

class cD : public cA, public cB, public cC {
	
};
int main() {
	cD dd;
	dd.a = 4;
	dd.c = 3;
	dd.f = 5;
	dd.cA::b = 1;
	dd.cB::b = 2;
	return 0;
}

多态,先看下代码(调用顺序见标记)

#include<iostream>
using namespace std;

class ami {
public:
	void eat() {
		cout << "动物吃。。" << endl;
	}
};

class cat1 : public ami{
public:
	void eat() {
		cout << "咪咪吃。。" << endl;
	}
};

void eat(ami& m) {
	m.eat(); //3
}

void Test() {
	cat1 d; 
	eat(d); // 2
}

int main() {
	Test();// 1
	return 0;
}

见输出结果:动物吃。。

如果是加上一个virtual 关键字,引入虚函数,见下

#include<iostream>
using namespace std;

class ami {
public:
	virtual void eat() {
		cout << "动物吃。。" << endl;
	}
};

class cat1 : public ami{
public:
	void eat() {
		cout << "咪咪吃。。" << endl;
	}
};

void eat(ami& m) {
	m.eat(); //3
}

void Test() {
	cat1 d; 
	eat(d); // 2
}

int main() {
	Test();// 1
	return 0;
}

运行结果:咪咪吃。。

重写父类的虚函数,就可以实现子类的不同功能,输入的是父类,但是可以输出子类对应的内容,这个可以形象的描述下多态。


http://www.kler.cn/a/464454.html

相关文章:

  • AWS 申请证书、配置load balancer、配置域名
  • C语言带参数的宏定义的相关知识汇总(最常用的形式、带标记分隔符##的形式...)
  • 智联视频超融合平台:电力行业的智能守护者
  • Eplan 布局图中的宏/设备/安装板比例缩放
  • 【期末复习】一、操作系统概论
  • 代码随想录算法训练营第五十二天|KM101.孤岛的总面积|KM102.沉没孤岛|KM103.水流问题|KM104.建造最大岛屿
  • 人工智能安全与隐私——联邦遗忘学习(Federated Unlearning)
  • 利用Java爬虫获取店铺所有商品:技术实践与应用指南
  • Windows通过X11转发显示远程Linux上的图形界面
  • 问题记录:[FATAL] [1735822984.951119148]: Group ‘manipulator‘ was not found.
  • vLLM结构化输出(Guided Decoding)
  • C语言中的va_list
  • 云架构Web端的工业MES系统设计之区分工业过程
  • 工业路由器是什么?ER5000为何是领先5G路由器行业
  • 鸿蒙HarmonyOS开发:系统服务(拨打电话、网络搜索、联系人、位置服务、拉起弹框请求用户授权)
  • OpenCV报错:应用程序无法正常启动0xc000007b
  • Hack The Box-Starting Point系列Responder
  • CSS列表、表格、鼠标、滤镜样式设置
  • 深入理解 C 语言预处理:从源文件到可执行程序的关键步骤
  • Vue3实战教程》24:Vue3自定义指令
  • linux下安装达梦数据库v8详解
  • 通过Dockerfile来实现项目可以指定读取不同环境的yml包
  • 24.Java 新特性扩展(重复注解、类型注解)
  • Docker隔离及资源限制原理
  • 参观华为-拓宽全球视野
  • ip属地是看运营商吗还是手机