1.#include<iostream> using namespace std; class Parent [] public: virtual void f() [ cout<<"invoke f from Parent"<<endl; 了 }; class Child:public Parent [ public:void f() { cout <<"invoke f from Child"<<endl; 了 }; void p(Parent &a) [ a. f(); } int main() [[] Parent a; p(a); Child b; b. f( ); p(b); return 0; 了
时间: 2023-07-16 14:16:58 浏览: 77
#include <iostream> #include<iomanip> using namespace std;九九乘法表
这段代码存在语法错误,需要进行修正,具体修改如下:
```
#include <iostream>
using namespace std;
class Parent {
public:
virtual void f() {
cout << "invoke f from Parent" << endl;
}
};
class Child : public Parent {
public:
void f() {
cout << "invoke f from Child" << endl;
}
};
void p(Parent& a) {
a.f();
}
int main() {
Parent a;
p(a);
Child b;
b.f();
p(b);
return 0;
}
```
这段代码定义了一个父类 `Parent` 和一个继承自父类的子类 `Child`,并且在 `Parent` 类中定义了一个虚函数 `f()`。在 `p()` 函数中,以 `Parent` 类型的引用作为参数,调用了 `a.f()`,在 `main()` 函数中,实例化了 `Parent` 对象 `a` 和 `Child` 对象 `b`,并分别调用了它们的 `f()` 函数,观察输出结果可以看到虚函数的多态性,即 `p()` 函数调用时,根据实参的实际类型调用了不同的函数。
阅读全文