我应该在其包含类的构造函数中实现struct的变量吗?

时间:2015-09-25 20:35:55

标签: c++ struct constructor linked-list default-constructor

我有一个头文件,其中包含一个名为'list'的类,以及一个名为'node'的结构,该结构位于该类的私有部分中。总之,这个类和结构将组成一个双重线程的酒厂对象列表(酿酒厂就是它自己的类)。我想知道的是,如果最好在列表构造函数和解构函数中实现和解除节点struct的变量 (像这样):

list::list()
{
    struct node
    {
        item = winery::winery()
        nextByName = nullptr;
        nextByRating = nullptr;
    };
    headByName = nullptr;
    headByRating = nullptr;
}
list::~list()
{
    struct node
    {
        delete item;
        delete nextByName;
        delete nextByRating;
    };
    delete headByName;
    delete headByRating;
}

如果单独实施和取消实施它们会更好 (像这样):

list::node::node()
{
    item = winery::winery()
    nextByName = nullptr;
    nextByRating = nullptr;
}
list::node::~node()
{
    delete item;
    delete nextByName;
    delete nextByRating;
}

或者我应该做别的什么?我看过网上,在我的教科书中,但确实没有明确的答案。我真的很感谢你们的帮助,如果你能解释为什么你的解决方案是最好的(如果它是最好的),我将非常感激。几个月前我才开始学习C ++。

顺便说一句,这就是我的list.h文件:

#include "winery.h"

class list
{
public:
    list();
    ~list();
    void addWinery();
    void removeWinery();
    void displayByRating() const;
    void displayByName() const;
    void searchByName() const;
private:
    struct node
    {
        winery item;
        node * nextByName;
        node * nextByRating;
    }; 
    node * headByName;
    node * headByRating;
}; 

0 个答案:

没有答案