有关C++类的一个问题
# include <iostream>
using namespace std;
class A
{
public:
void f()
{
cout < < "A::f() " < <endl;
}
};
class B:public A
{
public:
void f()
{
cout < < "B::f() " < <endl;
}
};
class C:public B
{
public:
void f()
{
cout < < "C::f() " < <endl;
}
};
int main()
{
B b;
b.f();
b.A::f();
cout < < "*************************** " < <endl;
C c;
c.f(); //这里引用的是类C中的f();
c.B::f(); //这里引用的是类B中的f();
//其实B继承A时,包含了A中的f(),C继承了B,当然也包含A中的f(),
//那么,我能不能用类似c.B::f();这种方式来引用c中的A::f()呢?
return 0;
}
不知上面我的理解对不对,
麻烦哪个会懂的解释下啊。谢谢了。
[解决办法]
那你就c.A::f()编译运行试一下嘛。
[解决办法]
可以的,但能不能绕个弯,再用上B呢?C是继承B来的啊。
不能这样:c.B::A::f()
因为A并不是B的成员,虽然f是.
[解决办法]
c.A::f()
vc通过
[解决办法]
可以。。。
[解决办法]
to taodm
是吗?我在VC6下编译的,没试dev...
[解决办法]
直接使用c.A::f();
VC6.0下面编译通过,运行一切正常
[解决办法]
又是VC6,真够浪费生命的。
嘛意思啊?vc我一直觉得没必要学,但你的这种领悟境界我还是没达到
[解决办法]
devc++下全部没问题啊
[解决办法]
不能用c.B::A::f()
因为A不是B的成员