亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

static_cast在類轉換中的應用

小樊
83
2024-06-18 20:49:57
欄目: 編程語言

在類轉換中,static_cast可以用于以下情況:

  1. 將基類指針或引用轉換為派生類指針或引用。這種轉換只能在編譯器已知源類型和目標類型之間存在繼承關系時才能進行。
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;
}
  1. 將整數類型轉換為枚舉類型。
enum class Color {
    Red,
    Blue,
    Green
};

int main() {
    int colorValue = 1;
    Color color = static_cast<Color>(colorValue);
    return 0;
}
  1. 將指針類型轉換為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;
}

0
仙游县| 锡林郭勒盟| 新泰市| 宁夏| 湘西| 礼泉县| 定远县| 凤翔县| 钦州市| 外汇| 云南省| 新密市| 威信县| 张家港市| 禄丰县| 武安市| 泰州市| 墨竹工卡县| 台安县| 溧水县| 南昌市| 于都县| 黄山市| 文安县| 湘西| 共和县| 清涧县| 仁寿县| 灵山县| 上犹县| 兴隆县| 宾川县| 宁远县| 长治市| 米易县| 洮南市| 泰安市| 宜川县| 昌图县| 邵阳市| 大荔县|