Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need help creating an array of objects

Tags:

c++

I am trying to create an array of class objects taking an integer argument. I cannot see what is wrong with this simple little code. Could someone help?

#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;
}
like image 297
phoganuci Avatar asked Feb 12 '26 03:02

phoganuci


1 Answers

In C++ you don't need typedefs for classes and structs. So:

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

Also, descriptive names are always preferrable, Object is much abused.

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

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

 return 0;
}

Otherwise, in your case:

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

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

 return 0;
}

Though, really you should look for 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;
}
like image 62
dirkgently Avatar answered Feb 14 '26 16:02

dirkgently



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!