Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Chuyển đổi kiểu nâng cao trong C++ và khai báo *, &

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    66

    Mặc định Chuyển đổi kiểu nâng cao trong C++ và khai báo *, &

    Cho em hỏi về các toán tử chuyển đổi kiểu sau trong C++.
    dynamic_cast<type-id>(expression)
    static_cast <type-id> (expression)
    const_cast <type-id> (expression)
    reinterpret_cast <type-id> (expression)
    safe_cast <type-id> (expression)

    Về dạng thức thì em hiểu rồi nhưng không hiểu về công dụng của nó lắm.

    Trong MSDN thì nó khai báo:
    Visual C++ Code:
    1. int &a;
    Có khác gì với:
    Visual C++ Code:
    1. int *a;
    2. int a;

    Em thấy hình như
    Visual C++ Code:
    1. int *a;
    2. int &a;
    Đều có tính chất của con trỏ mong mọi người giải thích giúp em.

    Đây là một cái ví dụ của nó.
    Visual C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. int main()
    5.    {
    6.    unsigned long   x1 = 0x12345678;
    7.    unsigned short &x2 = reinterpret_cast<unsigned short &>(x1);
    8.    cout << hex << x1 << endl;
    9.    cout << hex << x2 << endl;
    10.    x2 = 0xABCD;
    11.    cout << hex << x1 << endl;
    12.    cout << hex << x2 << endl;
    13.    }
    14. /*
    15. When run with Visual C++, this program produces
    16.  
    17. 12345678
    18. 1234
    19. abcd5678
    20. abcd
    21. */

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Mình nhớ không nhầm thì trên Cviet có ebook về con trỏ rồi thì phải.Bạn search thử xem rồi sẽ thấy khác nhau ngay bạn à.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    UIT
    Bài viết
    44

    Bạn thử tham khảo về phần viết về con trỏ trong tài liệu nhóm trong congdongcviet viết xem nhé

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    66

    Em cảm ơn Alviss và vtien_uit
    Anh vtien_uit nhớ lần sau upload thì nén lại nhé. Cho dù odt còn nén chán nữa là doc được hơn chục lần.

    Mọi người trả lời phần dưới thì không cần trả lời phần trên cũng được. Vì trong ví dụ phần trên có kiểu khai báo lạ em không chắc nên hỏi để hiểu đúng bản chất thôi.

    Hiện em đang dùng VC++
    Em muốn nhấn mạnh là toán tử chuyển đổi kiểu nâng cao trong C++
    Cho em hỏi về các toán tử chuyển đổi kiểu sau trong C++.
    dynamic_cast<type-id>(expression)
    static_cast <type-id> (expression)
    const_cast <type-id> (expression)
    reinterpret_cast <type-id> (expression)
    safe_cast <type-id> (expression)
    Em hỏi kiểu khai báo.
    Visual C++ Code:
    1. int &a;

    Các khai báo này thực hiện trong hàm hoặc chương trình chính chứ không phải ở phần tham số của hàm.
    Có phải là một hình thức khai báo con trỏ hay không?
    Nó khác gì với việc khai báo con trỏ.
    Visual C++ Code:
    1. int *a;
    Em không biết nó có phải là một hình thức khai báo không chuẩn của trình dịch VC++ hay không?

    Còn con trỏ thì em biết rồi nhưng khi đọc MSDN lại thấy nó lạ.
    Đã được chỉnh sửa lần cuối bởi mushu : 28-05-2008 lúc 03:21 PM.

Các đề tài tương tự

  1. Lập trình C++ Chuyển khai báo mảng xâu và con trỏ ra ngoài hàm main thì gây lỗi.
    Gửi bởi nguoixanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 30-08-2013, 01:27 AM
  2. Trả lời: 20
    Bài viết cuối: 27-02-2012, 12:05 AM
  3. Hỏi về chuyển đổi kiểu dữ liệu khi khai báo biến
    Gửi bởi chicken_chip trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 14-10-2011, 01:34 PM
  4. taị sao các biến static khi khai báo để dùng được lại phải khai báo lại trước hàm main ? ?
    Gửi bởi anhnpson trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 15-06-2011, 08:18 PM
  5. Sự khác nhau giữa các khai báo int, void, float trong khai báo hàm?
    Gửi bởi toend2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 06-05-2009, 07:19 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn