需要帮助创建一个对象数组

ban*_*edo 2 c++

我试图创建一个带有整数参数的类对象数组.我看不出这个简单的小代码有什么问题.有人可以帮忙吗?

#include <fstream>
#include <iostream>
using namespace std;

typedef class Object
{
 int var;
public:
 Object(const int& varin) : var(varin) {}
} Object;

int main (int argc, char * const argv[])
{
 for(int i = 0; i < 10; i++)
 {
  Object o(i)[100];
 }

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

dir*_*tly 8

在C++中,你不需要typedefs代替classes和structs.所以:

class Object
{
 int var;
public:
 Object(const int& varin) : var(varin) {}
};
Run Code Online (Sandbox Code Playgroud)

此外,描述性名称总是可取的,Object被滥用.

int main (int argc, char * const argv[])
{
 int var = 1;

 Object obj_array[10]; // would work if Object has a trivial ctor

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

否则,在你的情况下:

int main (int argc, char * const argv[])
{
 int var = 1;

 Object init(var);
 Object obj_array[10] = { var, ..., var }; // initialize manually

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

虽然,你真的应该寻找 vector

#include <vector>
int main (int argc, char * const argv[])
{
 int var = 1;

 vector<Object> obj_vector(10, var); // initialize 10 objects with var value

 return 0;
}
Run Code Online (Sandbox Code Playgroud)