static_cast在类转换中的应用

   2024-10-09 2990
核心提示:在类转换中,static_cast可以用于以下情况:将基类指针或引用转换为派生类指针或引用。这种转换只能在编译器已知源类型和目标类

在类转换中,static_cast可以用于以下情况:

将基类指针或引用转换为派生类指针或引用。这种转换只能在编译器已知源类型和目标类型之间存在继承关系时才能进行。
class Base {public:    virtual void func() {        cout << "Base function" << endl;    }};class Derived : public Base {public:    void func() override {        cout << "Derived function" << endl;    }};int main() {    Base* basePtr = new Derived();    Derived* derivedPtr = static_cast<Derived*>(basePtr);    derivedPtr->func();  // 输出 "Derived function"    delete basePtr;    return 0;}
将整数类型转换为枚举类型。
enum class Color {    Red,    Blue,    Green};int main() {    int colorValue = 1;    Color color = static_cast<Color>(colorValue);    return 0;}
将指针类型转换为void指针类型。
class MyClass {public:    void func() {        cout << "Hello, World!" << endl;    }};int main() {    MyClass* myClassPtr = new MyClass();    void* voidPtr = static_cast<void*>(myClassPtr);    MyClass* newMyClassPtr = static_cast<MyClass*>(voidPtr);    newMyClassPtr->func();  // 输出 "Hello, World!"    delete myClassPtr;    return 0;}

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号