2010-09-30 28 views

Trả lời

22

Đó là dự phòng. Foo đã có quyền truy cập vào tất cả các thành viên của Foo. Hai đối tượng Foo có thể truy cập các thành viên của nhau.

class Foo { 
public: 
    int touchOtherParts(const Foo &foo) {return foo.privateparts;} 
private: 
    int privateparts; 
}; 

Foo a,b; 
b.touchOtherParts(a); 

Mã trên sẽ chỉ hoạt động tốt. B sẽ truy cập thành viên dữ liệu cá nhân của một người.

+5

+1 rất độc đáo với các bộ phận riêng tư chạm vào – Alex

+2

@ Alex: đó là trò chơi C++ cũ, C++ có lẽ là ngôn ngữ duy nhất cho phép bạn bè chạm vào các bộ phận riêng tư của họ :) –

+3

... nhưng không phải bố mẹ – Arun

3

Đó là dự phòng và không cần thiết. Hơn nữa, tôi nhận được cảnh báo sau đây trong g ++

warning: class ‘Foo’ is implicitly friends with itself 
4

Có nó là hợp pháp cho một đối tượng của lớp Foo để truy cập các thành viên tư nhân của một đối tượng của lớp Foo. Điều này là thường xuyên cần thiết cho những thứ như xây dựng bản sao và phân công, và không có tuyên bố người bạn đặc biệt là bắt buộc.

0

Các lớp học thân thiện với bản thân có ý nghĩa nếu chúng là mẫu, vì mỗi phiên âm với các tham số riêng biệt là một lớp khác.

Các vấn đề liên quan