📄 宠物类.txt
字号:
一个小孩得知邻居家养了宠物,但不知是猫是狗。于是他丢了一块石头到邻居家院中以探明真相,被石头击中的宠物就会执行speak()函数,如果“miaomiao!”叫,则可得知该宠物是猫;如果“wangwang!”叫,则可得知该宠物是狗。
类的伪代码如下:
class 宠物
{
public:
void char *speak(){cout<<"zzz";}
…
};
class 猫:public 宠物
{
public:
void char *speak(){cout<<"miaomiao!";}
…
};
class 狗:public 宠物
{
public:
void char *speak(){cout<<"wangwang!";} …
};
小孩丢石头,相当于调用了宠物类对象的speak()函数。因为小孩不知道具体是猫还是狗,他的石头是朝宠物类对象仍的,而实际接收到此消息(石头)的宠物却是宠物类的派生类对象猫或狗。
调用过程的伪代码如下:
void main()
{
宠物 *p;
猫 cat1;
狗 dog1;
…
如果院子中的宠物是猫的话:则p=&cat1;
如果院子中的宠物是狗的话:则p=&dog1;
…
p->speak();
…
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -