下面程序中Base是抽象类。请在下面程序的横线处填上适当内容,以使程序完整,并使程序 的输出为: #include <iostream> class Base {public: _______________; }; class Der1:public Base {public: void display(){cout<<"Der1 called!"<<endl;} }; class Der2:public Base {public: void display(){cout<<"Der2 called!"<<endl;} }; void fun(______________) { p->display();} void main() { Der1 b1; Der2 b2; Base * p=&b1; fun(p); p=&b2; fun(p); }
时间: 2024-01-12 20:04:28 浏览: 32
下面程序中Base是抽象类。请在下面程序的横线处填上适当内容,以使程序完整,并使程序 的输出为:
```
#include <iostream>
class Base {
public:
virtual void display() = 0;
};
class Der1:public Base {
public:
void display(){std::cout<<"Der1 called!"<<std::endl;}
};
class Der2:public Base {
public:
void display(){std::cout<<"Der2 called!"<<std::endl;}
};
void fun(Base *p) {
p->display();
}
void main() {
Der1 b1;
Der2 b2;
Base * p=&b1;
fun(p);
p=&b2;
fun(p);
}
```
程序输出:
```
Der1 called!
Der2 called!
```
在 `Base` 类中,我们需要定义一个纯虚函数 `display()`,使得 `Base` 成为一个抽象类。在 `fun()` 函数中,需要使用 `Base` 类型的指针作为参数,这样才能保证在调用 `p->display()` 时,能够调用到派生类中实现的 `display()` 函数。因此,在 `fun()` 函数的参数列表中,我们需要使用 `Base *` 类型的指针。
在 `main()` 函数中,我们定义了两个派生类对象 `b1` 和 `b2`,并分别将它们的地址赋值给 `Base *` 类型的指针 `p`。然后分别调用了 `fun(p)` 函数,程序输出了 `Der1 called!` 和 `Der2 called!`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)