Giới hạn phạm vi truy cập của phương thức static

Mình có lớp A.
Trong A có lớp B.
Trong B có static method M.

Mình muốn M có thể truy cập public mọi chỗ trong A nhưng chỉ cho phép truy cập trong A mà thôi.

Anh em cho xin giải pháp hoặc từ khoá nhé.

1 Like

Đơn giản nhất là như vầy:

struct A{
  struct B{
  private:
    static void m(){}
  friend class A;
  };

  void f(){
    B::m(); // should work here
  }
};

Keyword là ở chỗ friend class, còn phức tạp hơn chút thì có attorney idiom như này https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Friendship_and_the_Attorney-Client

9 Likes

Quá hay luôn.
Cảm ơn anh em nhiều :slight_smile:

1 Like

chơi đánh solution xấu :))))

Đánh đúng mà. Ko lẽ nhầm :smile:

1 Like

với em, bác khi nào cũng đúng =)))

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?