请解释其工作原理。
class Parent
{
protected:
int parentInt;
public:
void printInt() {std::cout << parentInt;}
};
class Child : public Parent
{
private:
int childInt;
public:
void printInt()
{
Parent::printInt();
std::cout << parentInt;
}
};
Parent* = kids[10];
kids[0] = new Child;
我创建了一个指向父类型的指针数组,但是在创建子类对象时,我仍然可以将它放在指向父类型的指针数组中吗?这个怎么运作?
也就是说,在创建对象时,我分配了如此多的内存,以至于我的所有变量和方法都适合在那里。在继承人中,原来我多加了一些变量,也就是对象本身占用了更多的内存,但我仍然可以通过指针访问父类型,这似乎更小了。希望我说清楚了。我不太明白。:)
“在创建子类的对象时,我仍然可以将它放在指向父类型的指针数组中” - 不,你不能。在示例中,您将指向子类型的指针转换为指向父类型的指针,并将其放入指向父类型的指针数组中。
“当创建一个对象时,我被分配了足够的内存来容纳我所有的变量和方法” - 不,对象方法永远不会存储在其中。