类的继承和虚函数

简介: #include class A { public: virtual void print(void) { cout
#include <iostream.h>

class A 
{ 
public:
	virtual void print(void) 
	{ 
		cout<<"A::print()"<<endl; 
	} 
};
class B:public A 
{ 
public:
	virtual void print(void) 
	{ 
		cout<<"B::print()"<<endl;
	}; 
}; 
class C:public B
{
public:
	virtual void print(void)
	{
		cout<<"C::print()"<<endl;
	}
};
void print(A a) 
{ 
	a.print(); 
} 
void main(void) 
{ 
	A a, *pa,*pb,*pc; 
	B b; 
	C c; 
	
	pa=&a; 
	pb=&b; 
	pc=&c; 
	
	a.print(); 
	b.print(); 
	c.print(); 
	
	pa->print(); 
	pb->print(); 
	pc->print(); 
	
	print(a); 
	print(b); 
	print(c); 
}
//总结:
/*子类继承父类,父类的虚函数被子类的所重写。
基类对象调用它的函数,执行基类的函数。子类对象调用它的函数(重载父类的),执行子类的函数。
一个基类指针,指向基类对象,通过指针调用函数,执行其基类自身的函数。一个基类指针,指向子类对象,通过指针调用函数,执行子类的函数。
一个子类对象被传入形参类型为基类的函数中,所执行的函数,调用的是基类的函数。*/
相关文章
|
7月前
|
C++
9. C++虚函数与多态
9. C++虚函数与多态
65 0
|
6月前
|
编译器
继承——虚函数
继承——虚函数
|
编译器 C++
C++中的多态和虚函数
#include <iostream> using namespace std; //基类People class People{ public: People(char *name, int age); void display(); protected: char *m_name; int m_age; }; People::People(char *name, int age): m_name(name), m_age(age){} void Peopl
C++中的多态和虚函数
|
7月前
|
C++ 编译器 存储
|
存储 编译器 C++
<c++>虚函数与多态 | 虚函数与纯虚函数 | 多态的实现原理 | 虚析构函数
<c++>虚函数与多态 | 虚函数与纯虚函数 | 多态的实现原理 | 虚析构函数
145 0
|
7月前
|
存储 编译器 C++
C++多态与虚函数
C++多态与虚函数
76 0
C++虚函数与多态(二)
C++虚函数与多态(二)
|
C++
基类派生类多态虚函数?
通常在层次关系的根部有一个基类,其他类则直接或间接的从基类继承而来,这些继承得到的类称为派生类。基类负责定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自特有的成员。
116 0
<c++> 类的继承 | 基类与派生类 | 构造函数与析构函数
<c++> 类的继承 | 基类与派生类 | 构造函数与析构函数
145 0