我正在尝试在另一个类中设置一组基类和派生类。例如,我有基类:
class Base{
public:
Base() {};
Base(float kv) : param(kv) {}
~Base() {};
float getParam() { return param; }
void setParam(bool kv) { param= kv; }
protected:
float param;
};
和派生类,如:
class Derived1: public Base{
public:
Derived1() {};
Derived1(float kv) : Base(kv) {}
~Derived1() {};
};
现在,在另一个类中,我有一个 Base 类型的数组。
class Hive{
public:
Hive() {};
Hive(...) : ... {}
~Hive() {};
...
float getSomethingFromArray();
...
void setB();
protected:
...
Base *b[7];
};
现在,setB()
实例化数组,例如:
b[0] = new Derived1();
但是当我尝试访问 b[0] 的方法时它不起作用。当我调用方法时:
b[0].setParam(i);
编译器报告此错误
IntelliSense:表达式必须具有类类型 c:\users\miller\documents\visual studio 2010\projects\hello\hello\objekat.h 139 2 hello