注册 登录
编程论坛 C++教室

请教一个关于类中对象的引用格式问题

Iamagays 发布于 2007-07-14 22:37, 573 次点击

若有以下程序:

#include <iostream.h>
class p
{
public:
p(...) {...}
int inc1() {...}
...
};
class d1:private p
{
public
d1(...):p(...) {...}
int inc1() {...}
...
};
class d2:public p
{
public:
d2(...):p(...) {...}
int inc1() {...}
...
};
class d12:private d1,public d2
{
public:
d12(...):d1(...),d2(...) {...}
int inc1() {...}
...
}

void main()
{
d12 d(...);
d.inc1();
d.d12::inc1();
...
}

请问一下,主函数中划线语句分别调用p,d1,d2,d12类中的哪个语句? 由于源程序代码较多,我只列出关键性的跟我的

疑惑有关的语句形式,小弟觉得红色划线语句调用class d2中的int inc1(),而黑色划线语句调用class d12中的int

inc1(),我不知道对不对,望大家指点。

1 回复
#2
kaikai199582007-07-14 23:23
都是调用d12类inc1();
在没有虚函数的情况下,如果某派生类的多个基类拥有同名的成员,同时,派生类又新增这样的同名成员,在这种情况下,派生类的成员将隐藏所有基类的同名成员.
1