C++ 数据结构与构造析构函数详解
1. 数据类型转换与结构
在 C++ 中, static_cast 常被误解为与旧的 C 风格类型转换相同,但实际上并非如此。 static_cast 会在编译时进行类型检查,确保转换是合法的。例如:
class FinalType {};
class AnotherType : public FinalType {};
AnotherType *orig = new AnotherType;
FinalType *f = static_cast<FinalType *>(orig);
若使用 Code::Blocks 编译器,会收到 warning: unused variable 'f' [-Wunused-variable] 警告。而旧的 C 风格类型转换则不进行此类检查。在进行浮点数和整数之间的转换时,既可以使用旧的 C 风格转换,也可以使用 static_cast ,如 float f = static_cast<float>(x); 。
在 C++ 出现之前,C 语言中有类似于类的结构( struct ),但结构只有成员变量,没有成员函数,也没有访问控制。例如:
struct Dimensions
{
int height;
int width;
超级会员免费看
订阅专栏 解锁全文
474

被折叠的 条评论
为什么被折叠?



