Ari*_*Ari 7 c++ virtual inheritance const name-lookup
考虑:
#include <iostream>
using namespace std;
struct A {
virtual void f() { cout << "A::f" << endl; }
virtual void f() const { cout << "A::f const" << endl; }
};
struct B : public A {};
struct C : public A {
virtual void f() { cout << "C::f" << endl; }
};
int main()
{
const B b;
b.f(); // prints "A::f const"
const C c;
c.f();
// Compile-time error: passing ‘const C’ as ‘this’ argument of
// ‘virtual void C::f()’ discards qualifiers
}
Run Code Online (Sandbox Code Playgroud)
(我正在使用GCC.)
所以f()的const版本似乎隐藏在C中.这对我来说很有意义,但是它是否由标准规定?
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |