我有
class Variable
{
public:
double lb;
}
class Variables
{
public:
int numberOfVariables;
Variable **var;
}
现在
cout << var[0]->lb;
给了我预期的行为,但是
cout << var->s;
不起作用。事实上,它给了我编译错误:&#34;请求成员&#39; ..&#39; in&#39; ..&#39;这是非类型的#34;。我认为var和var [0]可以互换使用,我的调试器确实让我这样做。发生了什么事?
我有一种情况,我需要一个多态对象,可以采用单个var元素或var数组。实现它的最佳方法是什么?
答案 0 :(得分:0)
在C ++中,var[i]
相当于*(var + i)
。因此var
与var[0]
不同。 *var
与var[0]
相同。 var
只是指向数组开头的指针,您必须取消引用指针。查找指针。
关于第二个问题,请查看std::vector
。它动态地改变大小并为您处理所有低级别的内存管理操作。