91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
阿城市| 博客| 伊金霍洛旗| 河北区| 宝清县| 宁波市| 泰来县| 长治县| 中宁县| 潮州市| 新宾| 会东县| 本溪市| 花垣县| 张家口市| 临颍县| 墨脱县| 南开区| 远安县| 淅川县| 奉节县| 海原县| 明星| 洮南市| 盐亭县| 榕江县| 象州县| 谢通门县| 类乌齐县| 英山县| 朝阳县| 民丰县| 丹凤县| 固始县| 武清区| 惠水县| 木兰县| 西宁市| 驻马店市| 兴海县| 东乡|