dynamic-cast

    5Nhiệt

    6Trả lời

    Tôi có một lớp cơ sở và một lớp dẫn xuất. Mỗi lớp có tệp .h và tệp .cpp. Tôi đang làm dynamic_cast của đối tượng lớp cơ sở để các lớp có nguồn gốc trong đoạn mã sau: h file: class Base { public:

    9Nhiệt

    2Trả lời

    Tôi muốn đúc này: class Base { public: virtual ~Base(){}; }; class Der : public Base {}; int main() { const Base* base = new Der; Der* der = dynamic_cast<Der*>(base); // Error

    35Nhiệt

    4Trả lời

    Trước khi đọc câu hỏi: Câu hỏi này không phải là hữu ích khi sử dụng dynamic_cast. Nó chỉ là về hiệu suất của nó. Gần đây tôi đã phát triển một thiết kế trong đó dynamic_cast được sử dụng rất nhiều. K

    7Nhiệt

    1Trả lời

    Một thời gian ngắn trước đây, tôi thấy rằng bài báo rất thú vị về nâng cấp hiệu suất rất gọn gàng cho dynamic_cast trong C++: http://www2.research.att.com/~bs/fast_dynamic_casting.pdf. Về cơ bản, nó l

    15Nhiệt

    1Trả lời

    Theo những gì tôi đọc, thực hiện một dynamic_cast thời gian chạy sai có thể ném một ngoại lệ bad_cast hoặc trả về số không. Có đúng không khi nói rằng nó sẽ trả về 0 nếu bạn đang truyền con trỏ? tức l

    5Nhiệt

    5Trả lời

    Ví dụ tôi có mã như thế class Base1 { virtual void wonderFULL() = 0; }; class Base2 { // all this weird members }; class Derived : public Base1, public Base2 { // not so weird

    10Nhiệt

    3Trả lời

    Tôi bỏ về vấn đề này ... $ 5.2.7/2- "Nếu T là một kiểu con trỏ, v sẽ là một rvalue của một con trỏ đến hoàn chỉnh kiểu lớp, và kết quả là giá trị của loại T. Nếu T là loại tham chiếu , v sẽ là một giá

    5Nhiệt

    4Trả lời

    tôi có hai lớp trong java như: class A { int a=10; public void sayhello() { System.out.println("class A"); } } class B extends A { int a=20; public void sayhello() { System.out.println("

    6Nhiệt

    6Trả lời

    Mã dưới đây giải thích vấn đề. Điền vào same_sub_class để phát hiện nếu hai con trỏ tới lớp cơ sở ảo A thực tế là lớp cụ thể. struct A { ... }: struct B : public A { ... }: struct C :

    6Nhiệt

    7Trả lời

    Tôi hiện đang có loại mã: private void FillObject(Object MainObject, Foo Arg1, Bar Arg2) { if (MainObject is SomeClassType1) { SomeClassType1 HelpObject = (SomeClassType1)MainObject;