我是C ++的新手,我的问题可能很愚蠢:
我们将A,B和C类定义如下:
class A {
public:
typedef Resouce Money;
};
class B
:public A {
};
class C {
public:
typedef B::Money MyMoney;
};
这有效吗?我很困惑,因为“金钱”没有在B组中明确定义。
提前致谢!
答案 0 :(得分:2)
这是有效的,是的。
虽然B
没有明确定义Money
,但它已公开声明(: public A
)它继承自A
。此外,由于A
对Money
的定义是公开的,因此B
将Money
作为公共成员。
答案 1 :(得分:0)
公共(或受保护)基类的所有公共成员和受保护成员都是派生类的可访问成员。 “成员”包括成员变量,成员函数和成员类型,“类型”包括类型别名和新定义的类型。
所以成员A::Money
的确也可以B::Money
。