我试图创建一个带有整数参数的类对象数组.我看不出这个简单的小代码有什么问题.有人可以帮忙吗?
#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)
在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)