sig*_*sen 1 c++ dynamic-arrays
假设我有一个Square使用构造函数调用的对象Square(int rx, int ry),我想创建一个Squares的动态数组,在构造函数中使用不同的参数:
Square *squares = new Square[10];
for (int i = 0; i < 10; i++)
{
squares[i] = new Square(i, i);
}
Run Code Online (Sandbox Code Playgroud)
但是这失败了,说没有合适的默认构造函数可用.那么,如何建立一个空或空数组,然后做结构后?
编辑:由于代码中的其他内容,这必须是一个数组,这里很难解释.
使用vector.只要是Square可复制的,它就没有这个问题.
vector<Square> squares;
for (int i = 0; i < 10; i++)
{
squares.push_back(Square(i, i));
}
Run Code Online (Sandbox Code Playgroud)
你可以做的数组的指针到Square:
Square **squares = new Square*[10];
for (int i = 0; i < 10; i++)
{
squares[i] = new Square(i, i);
}
Run Code Online (Sandbox Code Playgroud)
正如其他人所指出的那样,考虑使用它是一个好主意std::vector.
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |