如何在类构造函数中初始化动态分配的数组

大天使

我们应该为每个索引分配一个空字符串,然后在函数addB()中将其替换为一个值。我对此很陌生,因此遇到了很多麻烦。

class A //in a.h

{

  private:

    B * b;

    int maxNumberOfItems;

    //...

  public:

  A();

  ~A();

 void addB(const B & something);

};

//in a.cpp

 A::A()

  {

    maxNumberOfItems=10;
    for(int i=0;i<maxNumberOfItems;i++)
    {
       b[i]="";//has to be an empty string, I am getting a segmentation fault
    }

  }

  A::~A(){/*...*/}

  //...

//in b.h

class B
{

 private:

      string name;

      int price;

  public:

      void setName(string);

      string getName();

      void setPrice();

      int getPrice(int);

      B & operator=(string &);

};

//in b.cpp

B & B::operator=(string & a){name = a;price = 0; return *this;}
//...

这只是显示我的问题的程序的一小段

法汉·亚辛(Farhan Yaseen)

您应该在使用动态数组之前分配内存。我已经为b分配了内存

class A //in a.h

{

private:

    B * b;

    int maxNumberOfItems;

    //...

public:

A();

~A();

void addB(const B & something);

};

//in a.cpp

A::A()

{
    maxNumberOfItems=10;
    b = new B[maxNumberOfItems];

    for(int i=0;i<maxNumberOfItems;i++)
    {
    b[i]="";//has to be an empty string, I am getting a segmentation fault
    }

}

A::~A(){/*...*/}

//...

//in b.h

class B
{

private:

    string name;

    int price;

public:

    void setName(string);

    string getName();

    void setPrice();

    int getPrice(int);

    B & operator=(string &);

};

//in b.cpp

B & B::operator=(string & a){name = a;price = 0; return *this;}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在结构数组中初始化和动态分配int指针成员?

动态分配的char数组显示为未使用构造函数初始化

如何使用一些参数初始化动态分配数组中的对象

如何在构造函数中初始化struct的动态数组?

如何在初始化程序中获取约束泛型的动态分配

如何在默认构造函数中初始化数组?

如何在构造函数中初始化对象数组?

当类构造函数具有参数时,如何在Java中初始化数组?

如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

如何在类中调整动态分配的数组的大小?

如何初始化具有构造函数的动态类

如何在函数中动态分配数组?

如何初始化不同动态分配地址的向量

如何在运行时使用构造函数初始化类中私有的数组?

初始化动态分配的整数

如何在派生类构造函数中初始化基类成员变量?

如何使用 initializer_ist 在构造函数中初始化动态数组?

初始化器值太多;初始化动态分配的数组?

如何通过参数初始化构造函数中的数组?

如何在类构造函数中初始化匿名结构?

如何在空类构造函数中初始化List <E>?

如何在类的构造函数中初始化对象的2D向量?(C ++)

如何在工厂方法中初始化具有多个参数构造函数的类

如何在派生构造函数中初始化从基类继承的向量

如何在 C++ 中的构造函数内初始化二维数组?

如何在 JavaScript 的构造函数中初始化对象数组

如何在构造函数中初始化char

如何在构造函数中初始化列表?

我如何在初始化列表中的构造函数之后初始化变量/对象?