宠物类.txt
来自「学C++的同学是不是遇到麻烦了」· 文本 代码 · 共 36 行
TXT
36 行
一个小孩得知邻居家养了宠物,但不知是猫是狗。于是他丢了一块石头到邻居家院中以探明真相,被石头击中的宠物就会执行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 + =
减小字号Ctrl + -
显示快捷键?