题目要求是写一个程序,定义抽象基类Shape,由他派生出3个派生出3个派生类Circle,Triangle,Rectangel。用虚函数分别计算几种图形面积,并求出他们的和。要求使用基类指针数组,使它的每一个元素指向一个派生类对象。 相关知识点: 试题来源: 解析#include<iostream>...
纯虚函数与基类指针数组的运用 代码参考 1#include <iostream>23usingnamespacestd;45classShape6{7public:8virtualdoubleprintArea()=0;9virtualvoidprintName()=0;1011};1213classCircle:publicShape14{15private:16doubler;17public:18Circle(doubler){this->r=r;}19doubleprintArea(){return3.14159*r*r;}20void...
C++ 对数组执行++时,根据的是数组类型与初始地址。例如你的派生类大小是8个字节,而基类是4个字节。
Item 3: Never treat arrays polymorphically.
写一个程序,定义一个抽象类Shape,由它派生3类:Square(正方形)、Trapezoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。 #include <iostream.h> class Shape {public:
MAC下g++编译不会崩溃。这种写法,不支持多态,delete[]时只有~base()被调用。
c++ 03 5.3.5 In the first alternative (delete object), if the static type of the object ...