看板 C_and_CPP 關於我們 聯絡資訊
底下 header 檔省略掉了 Include guard 應該要寫上去比較妥當,不過我懶了 // a.h class a { int x, y, z; public: friend void b(); void c(); }; // a.cpp #include <iostream> #include "a.h" void a::c() { std::cout << "a::c" << std::endl; } // b.h void b(); // b.cpp #include <iostream> #include "a.h" #include "b.h" void b() { // 因為 b() 是 friend, 可以任意取用 a 的 private member a test; test.x = 10; test.y = 20; test.z = 30; std::cout << "b()" << std::endl; } // test.cpp #include "a.h" #include "b.h" int main() { a test; test.c(); b(); } // 執行結果 a::c b() -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.40 ※ 編輯: james732 來自: 140.117.171.40 (08/25 16:10)