C++一个类的成员里定义了另一个类作为对象,并且用的数组,那我要怎么写构造,注意看注释

2024-12-18 12:52:26
推荐回答(3个)
回答1:

你好,T s[100] 这样写,s会调用T的默认构造函数,然而你并没有给出。所以这样写不行。如果想初始化数组,可以考虑用vector,例如

#include 
#include 
#include 

using namespace std;

class T
{
public:
 T(char o[], int r, double t, double a) 
  :e(r), ekj(t), k(a)
 {
  strcpy(m_a, o);
 }
protected:
 char m_a[10]; 
 int e;
 double ekj;
 double k;
};

class RE :public T
{
public:
 RE(char o[], int r, double t, double a)
  :s(100, T(o, r, t, a))    // 初始化s,s有100个元素
  ,T(o,r,t,a)               // 调用基类构造函数
 {}
protected:
 vector s;
 //T  s[100];
};

望采纳,谢谢

回答2:

我看是你T前面的冒号打错了吧,打成中文的了

回答3:

没有问题,可能是其他地方写错了