如下C++多态的问题,请问直接用子类对象去调用func()叫多态么?为什么?

class Base {
public:
void virtual func() {
cout << "父类func()" << endl;
}

};

class Son : public Base {
public:
void func() {
cout << "子类func()" << endl;
}
};

//void doFunc(Base& b) {
// b.func();
//}

void text() {
Son s;
//doFunc(s);
s.func();

}

int main() {
text();

system("pause");

return 0;
}

潇潇雨雨
浏览 138回答 1
1回答

一只萌萌小番薯

不算多态,多态一般是父类的引用或指针指向了子类对象,如果是子类对象自己直接调用函数就没有意义了。比如:Son s;Base* b = static_cast<Base*>(&s);b->func();
打开App,查看更多内容
随时随地看视频慕课网APP