中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
沧州市| 房产| 兴安县| 焦作市| 辽源市| 上饶市| 喜德县| 博客| 肥乡县| 葫芦岛市| 沙田区| 绥中县| 清丰县| 孝义市| 南宫市| 安西县| 巨野县| 玉树县| 上林县| 清河县| 浮梁县| 镇原县| 永泰县| 北碚区| 若羌县| 黎川县| 湛江市| 鹤庆县| 敖汉旗| 买车| 金秀| 陇南市| 聂荣县| 延长县| 云龙县| 西昌市| 桂平市| 上犹县| 泰州市| 太保市| 玉溪市|