我目前正在尝试在一种方法中插入数据,然后将其添加到向量中。出于某种原因,当我到达输入第二组 x y 的点时,我总是遇到分段错误。
这是我认为导致故障的部分:
if (shape == "square") {
for (int i = 0; i < 4; i++) {
cout << "Please enter x-coordinate of pt." << i+1 << " : ";
cin >> x;
cout << "Please enter y-coordinate of pt." << i+1 << " : ";
cin >> y;
sq->setName(shape);
sq->setContainsWarpSpace(type);
sq->setVertices(i,x,y);
shapes.push_back(sq);
}
}
setName
和setContainsWarpSpace
是正常的设置方法。
编辑
好的,我刚刚找到导致分段错误的行。这是我的setName
方法
void ShapeTwoD::setName(string name) {
this->name = name;
}
EDIT2
根据要求,这是名称和形状的定义。是的, sq 是Square
类的指针。
内部驱动程序类:
string shape;
在 ShapeTwoD 类内部:
class ShapeTwoD {
private:
string name;
bool containsWarpSpace;
double area;
};
知道为什么这会导致故障吗?