usr*_*usr 19 c++ language-lawyer c++11
考虑这个例子:
#include <iostream>
class A {
public:
virtual void f();
};
void A::f()
{
std::cout << "f() from A\n";
}
class B: public A {
public:
virtual void f() = 0;
};
class C: public B {
public:
void f();
};
void C::f()
{
std::cout << "f() from C\n";
}
int main()
{
C o;
o.f();
}
Run Code Online (Sandbox Code Playgroud)
A::f()实现从C类"隐藏",它提供了自己的实现f()- 有效地使A::f()或多或少无意义.我认为这种类层次结构设计没什么价值,但我的问题是这是一个有效的C++还是只是"有效"(例如未定义的行为)?
| 归档时间: |
|
| 查看次数: |
1547 次 |
| 最近记录: |