我正在编写一个需要一个表的程序,我正在使用一个向量数组来模拟它,我已经制作了一个自定义类来创建表。但是我看不到类表中的任何项目,除了 vec_data。为什么我无法访问此类中的公共成员?由于某种原因,MSVC++ Intellisense 只能看到 vec_data,没有别的。
template<class T>
class table
{
private:
T* vec_data;// initialize T
struct tblarray : public T
{
std::vector<T> vecTbl[];
bool operator[](unsigned int i) { return vecTbl[i]; } //redefine operator[] to accept unsigned int
static void operator new(double n) //redefine new operator
{
void *d;
if(n < 0) throw std::exception("Invalid Allocation to Negative number!");
if(assert((d=malloc(n)) != 0) = 0) throw std::bad_alloc;
return d;
}
void operator delete(void *d) //redefine delete operator
{
if(assert((free(p))) = 0) throw std::exception("Invalid Free of specified data!");
}
tblarray(const T&, unsigned int size) : T //one constructor
{
vecTbl = this.new std::vector<T>[reinterpret_cast<double>(size)];
}
~tblarray() //one destructor
{
this.delete(vecTbl);
}
}
public:
table(const T&, unsigned int size) : T
{
this.tblarray.tblarray(T, size);
}
~table()
{
this.tblarray.~tblarray();
}
}
例如:
table<int> tblOne; //legal
table.table(int, 123); //not legal(probably not legal anyways, but intellisense says the function does not exist?)