Không tốt. Nếu bạn có bất kỳ biến số tham chiếu hoặc tham chiếu nào trỏ vào thứ gì đó được phân bổ bên ngoài lớp học của bạn, có nhiều khả năng là thiết kế chương trình là thiếu sót bằng cách nào đó.
Một trường hợp tôi có thể tìm ra vị trí hợp lý của nó, là khi bạn có một số chức năng thu gom rác đặc biệt, bên ngoài.(Ví dụ: phân bổ tự động của C++ Builder/deallocation các thành phần VCL trên heap.)
Trường hợp khác là hợp lệ, khi bạn mô phỏng cấu trúc C với lớp C++ hoặc khi viết một lớp riêng bên trong một lớp khác.
Nhưng sau đó rất có thể, cần phải chỉ ra thứ gì đó bên ngoài lớp học đến từ thiết kế chương trình thiếu sót. Tôi sẽ suy nghĩ hai lần lý do tại sao mã của tôi cần phải làm điều này, và ít nhất là cố gắng thêm độ chính xác nhiều nhất có thể vào con trỏ, tức là const *c2 const obj;
Nếu bạn có con trỏ thành viên đặc biệt như thế này, bạn cũng phải có thể tự viết một hàm tạo bản sao, toán tử gán và hàm hủy cho lớp của bạn.
Chỉnh sửa: Lý do tại sao thực tiễn không tốt này là khái niệm gọi là private encapsulation, là một trong những nền tảng của khái niệm thiết kế chương trình có tên object-oriented design.
Câu hỏi tương tự http://stackoverflow.com/questions/892133/should-i-prefer-pointers-or-references-in-member-data –