底下 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)