⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 608.cpp

📁 C++实训教程
💻 CPP
字号:
//608.CPP demo pointers on derived objects
#include <iostream.h>
#include <cstring.h>
class Person
{
protected:
	string name;
public:
	Person(){name="";}
	Person(string n){name=n;}
	void PutName(string s) { name=s; }
	void ShowInfo(void)   { cout <<"Name is " <<name<<endl; }
};

class Address:public Person
{
	string addr;
public:
	Address():Person(){addr="";}
	Address(string aa,string nn):Person(nn){addr=aa;}
	void PutAddress(string a)	{ addr=a; }
	void ShowInfo(void)
   {	cout <<"Name is " <<name << "  Addr. is "<<addr << endl;	}
};
main(void)
{
	Person *prtP, objP;
	Address *prtA, objA;
	prtP=&objP;		// address of base
	prtP->PutName("PeiPei");	 // Access class Person via pointer.
	prtP=&objA; // Access class Address via base pointer.
	prtP->PutName("Black");
	objP.ShowInfo( );
	objA.ShowInfo( );

	prtA=&objA;
	//prtA=&objP;  cannot point to Base object
	prtA->PutAddress("New Zeland");
	prtP->ShowInfo( );// either prtP or prtA can beused in this line
	prtA->ShowInfo( );

	return 0;
}
/*
Name is PeiPei
Name is Black  Addr. is
Name is Black
Name is Black  Addr. is New Zeland

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -