上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4 LW_OOPC与C++的比较和评估
既然使用Visual C++环境,顺便跟C++程序比较一番。现在将刚才的LW_OOPC程序改写为C++程序,程序代码如下:
// Win32_EX01_02.cpp 这是C++程序 #include "stdafx.h" class IA { public: virtual void init()=0; virtual void print_area()=0; }; //------------------------------------------------- class Circle: public IA { private: virtual void init(); virtual void print_area(); void print_perimeter(); double radius; }; void Circle::init() { radius = 10.5; } void Circle::print_area() { printf("AC = %f\n", 3.14 * radius * radius); } void Circle::print_perimeter() { printf("PC = %f\n", 2 * 3.14 * radius); } //---------------------------------------------------------------------- class Rectangle: public IA { private: virtual void init(); virtual void print_area(); void print_perimeter(); double length, width; } void Rectangle::init() { length = 10.5; width = 5.125; } void Rectangle::print_area() { printf("AR = %f\n", length * width); } void Rectangle::print_perimeter() { printf("P = %f\n", 2*(length + width)); } //-------------------------------------------------------------- int _tmain(int argc, _TCHAR* argv[]) { IA *pc = new Circle(); pc->init(); pc->print_area(); IA *pr = new Rectangle(); pr->init(); pr->print_area(); getchar(); return 0; }
此程序产生一个Win32_EX01_02.EXE执行文件,其大小如图1-12所示。
图1-12
此程序大小为30.5KB。C++版程序比LW_OOPC版增加了2KB。
以上的评估说明了面向对象ANSI-C是一项很划算的策略。