• Thứ Hai, 18/01/2010 09:08 (GMT+7)

    Quy tắc sử khai báo con trỏ

    Câu hỏi :
    Trong C++ khi khai báo: String* str=new String thì str chứa địa chỉ vùng nhớ đối tượng, vậy khi khai báo String strn; thì hiểu như thế nào? String là 1 lớp được xây dựng.


    Trả lời :
    CString là 1 class định sẵn trong thư viện chứa các class phổ dụng MFC (Microsoft Foundation Class) do Microsoft viết và phân phối kèm theo môi trường lập trình Visual C++. Trong VC++, bạn có 2 khả năng định nghĩa biến đối tượng:
     1. Định nghĩa biến pointer (tham khảo đến đối tượng) theo cú pháp sau:
     CString *pstr;
     Sau khi được định nghĩa, biến pointer pstr chưa chỉ đến đối tượng nào cụ thể cả. Để dùng được biến pstr, ta phải gán địa chỉ 1 đối tượng nào đó vào biến pstr. Thí dụ, hàng lệnh sau:
     CString *pstr = new CString("Nguyen Van A");
     sẽ tạo 1 đối tượng CString mới chứa chuỗi "Nguyen Van A" và gán địa chỉ của đối tượng mới này vào biến pstr. Từ đây ta truy xuất đối tượng mới thông qua biến pstr.
     2. Định nghĩa biến đối tượng theo cú pháp sau:
     CString str("Nguyen Van B");
     Sau khi được định nghĩa, biến str chứa trực tiếp đối tượng CString với nội dung là chuỗi "Nguyen Van B". Từ đây ta truy xuất đối tượng này trực tiếp nhờ biến str.
     Lưu ý sự khác biệt về cú pháp truy xuất các thành phần trong biến pointer và biến đối tượng.
     - Ta dùng chuỗi "->" để truy xuất 1 thành phần trong biến pointer đến đối tượng, thí dụ:
     pstr->GetBuffer(...) để truy xuất nội dung chuỗi của nó.
     - Ta dùng ký tự "." để truy xuất 1 thành phần trong biến đối tượng, thí dụ:
     str.GetBuffer(...) để truy xuất nội dung chuỗi của nó.
     
    Chuyên mục: Lập trình