C++ 创建嵌套类中的对象
我有以下课堂示意图:C++ 创建嵌套类中的对象,c++,arrays,class,object,C++,Arrays,Class,Object,我有以下课堂示意图: class ListOfArrays { class ArrayNode { public: int* data_; int size_; ArrayNode* prev_; ArrayNode* next_; ArrayNode(int* data, int size) : data_(data), size_(size), next_(0), prev_(0) {} }; ArrayNode*
class ListOfArrays {
class ArrayNode {
public:
int* data_;
int size_;
ArrayNode* prev_;
ArrayNode* next_;
ArrayNode(int* data, int size)
: data_(data), size_(size), next_(0), prev_(0) {}
};
ArrayNode* head_;
int size_;
public:
ListOfArrays()
: size_(0), head_(new ArrayNode(0, 0)) {
head_->next_ = head_;
head_->prev_ = head_;
}
};
如何在主函数ArrayNode中创建全部在ListOfArrays中的对象?因为类
ArrayNode
在ListOfArrays
的私有部分声明,这会阻止ListOfArrays
类之外的任何引用。因为ArrayNode
是一个私有的类ListOfArrays
,对于“如何在主函数ArrayNode对象中创建”这个问题的答案很简单:您没有。听起来像ArrayNode
是ListOfArrays
类中的一个内部模块,因此您不希望在该类之外的任何地方使用它(例如,在main
中,您应该只实例化ListOfArrays
对象)。在继续实施之前,您可能应该仔细重新考虑您的软件设计。好的,我明白了,请将此作为答案发布。声明public
时,可以“本地”解决问题(即修复编译错误)值得注意的是,真正的问题在于将此功能(最初打算作为内部机制)公开给外部使用的想法(即,真正的问题是通用软件设计,而不是手头的特定编码错误)。