C++中可以在一个类里建一个成员变量,用vector实例化另一个类吗?比如说下面这个

时间:2021-03-04 04:23:22
class CPointElement
{
public:
// constructors
CPointElement()
{
}

CPointElement(CString& i, double x, double y, double h) :
id(i), x(x), y(y), h(h){}

~CPointElement()
{
}

// operations on Sales_data objects
CString& GetID(){ return id; }
void GiveID(CString& i) { id = i; }
CString& GetType();
void GiveType(CString& t);
double GetX(){ return x; }
void GiveX(double x){ this->x = x; }
double GetY(){ return y; }
void GiveY(double y){ this->y = y; }
double GetH(){ return h; }
void GiveH(double h){ this->h = h; }
private:
CString id = _T(""); // ID
enum PointType // 点要素类型
{
entity, // 实体点
mark, // 注记点
node, // 节点
endpoint, // 端点
wrong // 输入了非法字符
}type = wrong; // 类型
double x = 0.0; // x坐标
double y = 0.0; // y坐标 
double h = 0.0; // 高程
};
然后用另一个类
class CPoint:
public  CPointElement
{
private vector<CPointElement> m_post;
};
这样行吗?具体格式是怎样的呢?如何初始化呢?定义成private还是public呢?

2 个解决方案

#1


可以
初始化么,C++11 可以用 初始化表
C++ 可以用数组初始化 vector

#2


定义的时候直接写成:
private:
     vector<CPointElement> m_post;

然后在构造函数初始化列表那里调用CPointElement构造函数为其初始化

#1


可以
初始化么,C++11 可以用 初始化表
C++ 可以用数组初始化 vector

#2


定义的时候直接写成:
private:
     vector<CPointElement> m_post;

然后在构造函数初始化列表那里调用CPointElement构造函数为其初始化