C中的:
typedef struct point3d{ float x; float y; float z; }Point3D; #define Point3d_print(pd) \ printf("%g, %g, %g", pd->x, pd->y, pd->z); // ***
与C++中的
class Point3D{ public: Point3D(float x = 0.0, float y = 0.0, float z = 0.0) :_x(x), _y(y), _z(z){} float x() { return _x;} float y() { return _y;} float z() { return _z;} //---- private: float _x; float _y; float _z; };
将Point3D封装成C++的类之后,布局成本增加了多少?
没有增加:
C++在布局以及存取时间上主要的额外负担是由vritual引用的。包括:
此外,还有一些多重继承下的额外负担,发生在“一个派生类和其第二会在后继的基类的转换”之间。
总之,C++不一定比C慢