Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

請教有關於「friend」用法

0 views
Skip to first unread message

通訊橋樑

unread,
Jan 23, 2003, 10:26:02 PM1/23/03
to
我想請問friend的用法及好處,它到底方便在那裡?能否請高手舉個例子說
明一下,謝謝!
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: erlang.ee.nthu.edu.tw

h式的愛情(b)

unread,
Jan 29, 2003, 4:54:18 PM1/29/03
to
※ 引述《jcjj...@bbs.cs.nthu.edu.tw (通訊橋樑)》之銘言:
> 我想請問friend的用法及好處,它到底方便在那裡?能否請高手舉個例子說
> 明一下,謝謝!
你的程式有兩層以上的class
然後外層class 的private裡的函式
常常要改到內層class裡面的變數
兩個class的關係可以說密不可分
明明直接改就行 可是如果你不用friend
你就得在A寫一個function為 改x
要讀x又得寫一個function
這不是很麻煩嗎^^.......
不然 用struct 也是一種方法^^...
--
class A
{
friend B;
private:
int x;
}
class B
{
public:
A aaa;
private:
void f(){aaa.x=5;};
}
--
[1;32m┌───── [33m◆ [37mKKCITY [33m◆ [32m─────┐ [m [34m [44m [1;34;40m╱ [m [44m [1;34;40m╱ [m [44m [;34;40m ̄ [;34;40m ▌ [34m ̄ [44m [40m ̄ [1;34m╲╱ [31mBBS [37m 城邦 [m
[1;32m│ [31m bbs.kkcity.com.tw [32m│ [34m [46m [1;36;40m╲ [m [46m [1;36;40m╲ [m [46m [36;40m╴ ▌ ▌ ▏ [1;34m [33mKK免費撥接 [m
[1;32m└── [34m《 [0;37mFrom:218.162.169.211 [1;34m》 [32m──┘ [37m http://www.kkcity.com.tw/freeisp/ [m

coco

unread,
Feb 11, 2003, 12:04:42 AM2/11/03
to
hl...@kkcity.com.tw (h R (b)) wrote in message news:<44UlYg$J...@bbs.kkcity.com.tw>...

> ※ 引述《jcjj...@bbs.cs.nthu.edu.tw (通訊橋樑)》之銘言:
> > 我想請問friend的用法及好處,它到底方便在那裡?能否請高手舉個例子說
> > 明一下,謝謝!
> 你的程式有兩層以上的class
> 然後外層class 的private裡的函式
> 常常要改到內層class裡面的變數
> 兩個class的關係可以說密不可分
> 明明直接改就行 可是如果你不用friend
> 你就得在A寫一個function為 改x
> 要讀x又得寫一個function
> 這不是很麻煩嗎^^.......
> 不然 用struct 也是一種方法^^...
> --
> class A
> {
> friend B;
> private:
> int x;
> }
> class B
> {
> public:
> A aaa;
> private:
> void f(){aaa.x=5;};
> }

什麼是兩層以上的class?
指繼承關係嗎?
那麼你舉的例子應該要用 protected 解決就好了,不應用friend。
至於改用 struct,我就更不明白了...
在C++中 struct 和 class 是一樣的東西,唯一的差別是 struct 的成員預設為
public 而 class 的成員預設為 private。
friend 只要知道它的功能就可以了,它就像大樓的逃生梯,只要知道它在那兒就成。
平時根本不應想要去用它,不得已時才用它來逃生。

0 new messages