Tiger是Animal的子类
TigerArr是一个指针指向一组指向Tiger的指针
Animal **AnimalArr;
Tiger **TigerArr;
void f(Animal **arr, int num);//函数原型
void f(Animal **arr, int num)
{
for (int i = 0; i < num; i++)
{
arr[i] = new Animal*(50);//错误一
//cannot initialize a new value of type 'Animal *' with an rvalue of type 'int'
}
}
call f:
f(TigerArr, tigernum);
错误二:
cannot initialize a parameter of type 'Animal **' with an lvalue of type 'Tiger **'
Animal 构造函数
Animal::Animal(const int basef)
: BaseFoodCost(10)
{
A = 1;
C = 0;
N = 0;
P = 0;
}
Tiger::Tiger(const int basef) : Animal(50)
{
A = 1;
C = 10000;
N = 1;
P = 2000;
}
几个问题:
1. const变量basef在animal类和Tiger类里面有不同的数值,这样初始化可以么?
2. 不知道如何初始化错误一,arr[i]是指向Animal的一个指针,但是Animal的构造函数必须有一个数值Animal(int),所以该怎么写?
3. TigerArr = new Tiger*[10];
Tiger是Animal的子类,在传递函数的时候,为什么会有错误二