{
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
初始化么,C++11 可以用 初始化表
C++ 可以用数组初始化 vector
#2
定义的时候直接写成:
private:
vector<CPointElement> m_post;
然后在构造函数初始化列表那里调用CPointElement构造函数为其初始化
private:
vector<CPointElement> m_post;
然后在构造函数初始化列表那里调用CPointElement构造函数为其初始化
#1
可以
初始化么,C++11 可以用 初始化表
C++ 可以用数组初始化 vector
初始化么,C++11 可以用 初始化表
C++ 可以用数组初始化 vector
#2
定义的时候直接写成:
private:
vector<CPointElement> m_post;
然后在构造函数初始化列表那里调用CPointElement构造函数为其初始化
private:
vector<CPointElement> m_post;
然后在构造函数初始化列表那里调用CPointElement构造函数为其初始化