0

我是 C++ 的新手,我的问题可能很愚蠢:

我们有 A、B 和 C 类定义如下:

class A {
public:
    typedef Resouce Money;
};

class B
   :public A {
};

class C {
public:
    typedef B::Money MyMoney;
};

这是有效的吗?我很困惑,因为 B 类中没有明确定义“金钱”。

提前致谢!

4

2 回答 2

2

这是有效的,是的。

虽然B没有明确定义Money,但它已公开声明 ( : public A) 它继承自A. 更进一步,因为A' 的定义Money是公开的,那么B就会有Money作为公开的成员。

于 2013-10-25T16:11:45.227 回答
0

公共(或受保护)基类的所有公共和受保护成员都是派生类的可访问成员。“成员”包括成员变量、成员函数和成员类型,“类型”包括类型别名和新定义的类型。

所以确实该成员A::Money也可以作为B::Money.

于 2013-10-25T16:16:54.933 回答