再请问一个问题咯,麻烦咯麻烦咯#includeusing namespace std;class Baseclass{public:void Fun1() {cout
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/18 23:02:10
![再请问一个问题咯,麻烦咯麻烦咯#includeusing namespace std;class Baseclass{public:void Fun1() {cout](/uploads/image/z/6883601-41-1.jpg?t=%E5%86%8D%E8%AF%B7%E9%97%AE%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%E5%92%AF%2C%E9%BA%BB%E7%83%A6%E5%92%AF%E9%BA%BB%E7%83%A6%E5%92%AF%EF%BC%83includeusing+namespace+std%3Bclass+Baseclass%7Bpublic%3Avoid+Fun1%28%29+%7Bcout)
再请问一个问题咯,麻烦咯麻烦咯#includeusing namespace std;class Baseclass{public:void Fun1() {cout
再请问一个问题咯,麻烦咯麻烦咯
#includeusing namespace std;class Baseclass{public:void Fun1() {cout
再请问一个问题咯,麻烦咯麻烦咯#includeusing namespace std;class Baseclass{public:void Fun1() {cout
#include <iostream>
using namespace std;
class Baseclass {
public:
void Fun1() {
cout << "Fun1() in Baseclass is called!" << endl;
}
virtual void Fun2() {
cout <<"Fun2() in Baseclass is called!" << endl;
}
};
class derivedclass : public Baseclass {
public :
void Fun1() {
cout << "Fun()1 in derivedclass is called!" << endl;
}
void Fun2() {
cout<< "Fun()2 in derivedclass is called!" << endl;
}
};
int main(){
derivedclass d;
Baseclass *pb = &d;
Baseclass b;
pb->Fun1();
pb->Fun2();
return 0;
}
因为 pb 是声明为基类 Baseclass 的指针,所以通过它调用 Fun1 时,调用了基类的函数.
而因为基类中加了 virtual 声明 Fun2 是虚函数,在派生类中又重写了该虚函数,实现了对基类虚函数的覆盖.当基类指针指向派生类的对象时,对虚函数的调用就会调用了派生类的函数而不是基类的函数.这是面向对象中的多态性的体现.