...编辑 我有类foo的构造函数
foo();
foo(int);
foo(const foo&);
如何使用构造函数动态分配/初始化int数组的int数
foo(int)
;
目的是调用foo(int)
并使用main.cpp foo[int]
访问数组
作为foo[1], foo[2]...
不使用vector
...
答案 0 :(得分:1)
假设您在Foo类中有一个私有数据成员,它是一个指针,例如int* arr
,在构造函数中,您可以动态地将它分配给某个类型的数组,如下所示:
foo::foo(int size)
{
arr = new int[size];
}
答案 1 :(得分:-1)
#include <iostream>
#include <string>
class Foo{
public:
Foo(int num){
max = num;
arr = new int[num];
}
~Foo(){
delete [] arr;
}
//overloading of operator []
int &operator[](int i){
int re = 0;
if(i < max)
return arr[i];
else
return arr[0];
}
private:
//pointer to an array
int *arr;
//size of an array
int max;
};
//simple example
int main()
{
Foo foo(10);
foo[5] = 5;
std::cout << foo[5] << std::endl;
}
答案 2 :(得分:-2)
struct foo_class
{
foo_class(int i) : arr(new something[i]) {}
something const& operator[](int i) const { return arr[i]; }
private:
boost::scoped_array<something> arr;
};
如果你不使用boost,那么制作scoped_array模板类很容易。