类指针åˆå§‹åŒ–çš„å‘é‡

时间:2015-06-10 05:09:56

标签: c++ vector initialization

    class Comp
{
    //...
};

class MyClass
{
private:
    vector<Comp*>vec;
    //...
};

我需è¦åˆå§‹åŒ–一个类对象的类å‘é‡çš„å‘é‡ã€‚我该如何åˆå§‹åŒ–它?

3 个答案:

答案 0 :(得分:2)

ä½ å¯ä»¥è®¾ç½®ä¸€ä¸ªåˆå§‹å¤§å°ï¼ˆä¾‹å¦‚10,如下所示),用构造函数填充所有NULL值:

vector<Comp*> vec(10, NULL);

您还å¯ä»¥ä½¿ç”¨push_back(), push_front()å’Œinsert()方法以å„ç§æ–¹å¼æ’入元素。

答案 1 :(得分:1)

使用vec.push_back(new Comp())但请记ä½ä½¿ç”¨delete vec[<item>]

删除所有项目

答案 2 :(得分:1)

å‘é‡æ˜¯private,我会让构造函数使用æˆå‘˜åˆå§‹åŒ–列表åˆå§‹åŒ–它:

class MyClass
{
public:
    MyClass();
private:
    vector<Comp*> vec;
};

MyClass::MyClass()
: vec(10, nullptr) // edit to suit the size and content.
{}                 // alternatively initialize it inside the body {} with loop