将数组存储到对象C++中
Storing arrays into an object C++
我有一个 Shape 类来计算形状在其他属性和函数中的面积,我的类 Square 继承自它。
总的来说,我有一个形状指针的向量。用户输入他们的形状和坐标后,我必须将他们的坐标存储到形状对象中,然后将对象存储到矢量本身中。
我不确定如何将数组存储到对象中,或者是否可能。这是我尝试过的。
//Global variables
vector<Shape> *Shape;
void CalculateShapeData()
{
//Variables declaration
string shape;
//Store x,y coordinates in array
int tempx[100],tempy[100];
cout << "Please enter name of shape : " << endl;
cin >> shape;
cout << "Please enter special type: " << endl;
if (shape == "Rectangle")
{
}
else if (shape == "Square")
{
for (int i = 0; i < 4;i ++)
{
cout << "Enter x-coordinate of pt " << i << ":" << endl;
//cin >> tempx[i];
cout << "Enter y-coordinate of pt " << i << ":" << endl;
//cin >> tempy[i];
//Store coordinates into square object
}
}
我在这里读过一个替代方案,但它使用结构。将输入存储到数组C++
我不确定我是否可以使用数组来代替?
类当然可以包含数组或任何其他有效类型的成员:
class Square: public Shape
{
private:
Point vertices_ [4];
};
问题是:这就是你想要的吗? 或者,也许您想要一个点,加上宽度和高度。
。你如何把信息输入广场? 最好的方法是通过 ctor :
Square::Square (const Point& upperLeft, int width, int height);
我看到你发表了一条评论说:我不能使用全局数组吗? 嗯,当然,你可以做任何你想做的事。 但它会令人困惑,因此更难编写、调试和维护。 如果您必须使用全局数组,Square 可以存储的不是点,而是该全局数组的索引。 但请不要。 没有必要,这是另一个层次的复杂性。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 构造对象的歧义
- 使用"std::unordereded_map"映射到"std::list"对象