#include<iostream> using namespace std; , class Base 1 public: virtual void Show( ) cout<< <'B';; }; class Derived:public Base 1 public: void Show( ) cout< <'D'; ,; int main( ) 1 Base *pl =new Derived; Derived *p2=new Derived; p1->Show0; p2-> ShowO; delete pl; delete p2; return 0; }运行这个程序的输出结果是
时间: 2024-01-16 11:05:12 浏览: 105
使用include <iostream>时一定要加using namespace std
程序存在语法错误,正确的程序应该是这样的:
```
#include<iostream>
using namespace std;
class Base1 {
public:
virtual void Show() { cout << 'B'; }
};
class Derived: public Base1 {
public:
void Show() { cout << 'D'; }
};
int main() {
Base1* p1 = new Derived;
Derived* p2 = new Derived;
p1->Show();
p2->Show();
delete p1;
delete p2;
return 0;
}
```
程序的输出结果是:
```
DD
```
解释如下:
1. 首先定义了一个名为 Base1 的基类,其中定义了一个虚函数 Show(),输出字符 'B'。
2. 接着定义了一个名为 Derived 的派生类,继承了 Base1,同时重写了 Show() 函数,输出字符 'D'。
3. 在主函数中,分别用基类指针和派生类指针分别指向一个 Derived 对象。
4. 调用基类指针的 Show() 函数,由于是虚函数,会调用 Derived 类中的函数,输出字符 'D'。
5. 调用派生类指针的 Show() 函数,直接调用派生类中的函数,输出字符 'D'。
6. 最后释放内存。
阅读全文