lud*_*ger -1 c++ virtual-functions
下面是C++中虚拟函数最简单的例子:
#include <iostream>
class A {
public:
virtual void f() {
std::cout << "A";
}
};
class B : public A {
public:
void f() {
std::cout << "B";
}
};
int main() {
{
// calls f() in derived class
A* a = new B();
a->f();
}
{
// calls f() in base class
A a = B();
a.f();
}
}
Run Code Online (Sandbox Code Playgroud)
这个程序的输出是BA.我期待它BB,即在任何情况下调用基类.为什么使用基类指针会有所不同?我没有在标准中找到解释.
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |