假设我有:
- 两个等级:P 和 C。
- P <>- C 之间的组合关系,即P 的每个实例都包含一个C 的实例,当父P 实例被销毁时,C 的实例也被销毁。
为了实现这一点,在 C++ I 中:
- 定义两个类 P 和 C;
- 定义一个 boost::shared_ptr 类型的 P 成员变量,并在 P 的构造函数中使用新创建的对象对其进行初始化。
下面给出了一个代码示例。
#include "boost/scoped_ptr.hpp"
class C
{
public:
C() {}
private:
};
class P
{
public:
P() : childC(new C()) {}
private:
boost::shared_ptr<C> childC;
};
int main(int argc, char** argv)
{
P p;
}
不知何故,我无法构建这个简单的代码示例,我不明白为什么(我是编程新手)。
错误:
“P”类没有任何名为“childC”的字段</p>
预期的 ';' 在'<'之前 令牌
'::' 的无效使用</p>
ISO C++ 禁止声明没有类型的“shared_ptr”