欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++ Notes-Inheritance-03

程序员文章站 2022-05-18 14:49:33
类型转换(基类、派生类) 1、公有派生类对象可以被当作基类的对象使用,反之则不可。 (1)派生类的对象可以隐含转换为基类对象 (2)派生类的对象可以初始化基类的引用 (3)派生类的指针可以隐含转换为...

类型转换(基类、派生类)

1、公有派生类对象可以被当作基类的对象使用,反之则不可。

(1)派生类的对象可以隐含转换为基类对象

(2)派生类的对象可以初始化基类的引用

(3)派生类的指针可以隐含转换为基类的指针

2、通过基类对象名、指针只能使用从基类继承的成员

3、code

#include 
using namespace std;
class base1 {                //基类base1定义
public:
	void display() const {
		cout << "base1::display()" << endl;
	}
};
class base2 : public base1 { //公有派生类base2定义
public:
	void display() const {
		cout << "base2::display()" << endl;
	}
};
class derived : public base2 { //公有派生类derived定义
public:
	void display() const {
		cout << "derived::display()" << endl;
	}
};
void fun(base1 *ptr) {  //参数为指向基类对象的指针
	ptr->display();     //"对象指针->成员名"
}
int main() {            //主函数
	base1 base1;        //声明base1类对象
	base2 base2;        //声明base2类对象
	derived derived;    //声明derived类对象

	fun(&base1);        //用base1对象的指针调用fun函数
	fun(&base2);        //用base2对象的指针调用fun函数
	fun(&derived);      //用derived对象的指针调用fun函数

	return 0;
}