[問題] friend呼叫private的成員

看板C_and_CPP作者 (越來越遙遠吧)時間13年前 (2011/01/24 04:27), 編輯推噓1(1012)
留言13則, 4人參與, 最新討論串1/1
我是C++中的大新手 >_< 現在使用的是Borland C++ Building軟體 我參考書中所寫的: 被宣告為類別夥伴的函式具有存取私有成員的特權,所以這樣一來就不必將類別 的資料成員設為公開成員。 可是為什麼我在class裡面設的friend函式,不能呼叫private的變數呢? 比如像這樣 class hey(){ friend void apple(int,int); public: int a,b,c,d; void set(int num1,int num2) {time=num1 ,space=num2;} private: int time,space; }; void apple(int x,int y) { .... } 我的apple函式裏頭,可以呼叫a、b、c、d,可是不能呼叫time跟space 請問為什麼呢? 書中的例子也是可以使用呀-.- 另外, 如果我要用一個函式設為class的friend,比較兩個物件的屬性內容,甚至加減乘除 像是這樣.... int main { hey A,B; A.set(500,500); B.set(400,600); ..... } 請問接下來該如何做呢? 可以....簡單的示範一下嗎! 跪求大大們講解 >_< -- 我走過山的時候山不說話,我路過海的時候海不說話; 我坐著的毛驢一步一步滴滴答答,我帶著的倚天喑啞。 大家說我因為愛著楊過大俠,找不到所以在峨嵋安家; 其實我只是喜歡峨嵋的霧,像十六歲那年綻放的煙花。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.100.163 ※ 編輯: pandadoctor 來自: 123.204.100.163 (01/24 04:32)

01/24 12:57, , 1F
傻眼
01/24 12:57, 1F

01/24 14:50, , 2F
你要傳物件進去吧 apple(hey x,hey y)在裡面比較
01/24 14:50, 2F

01/24 15:53, , 3F
http://codepad.org/IqmyLjsu 我整個無言, 買本書不是
01/24 15:53, 3F

01/24 15:54, , 4F
只看程式碼不看文字的部份耶...不要用程式碼來理解它
01/24 15:54, 4F

01/24 16:27, , 5F
很多用語都打錯...這樣怎麼學得好
01/24 16:27, 5F

01/24 16:53, , 6F
謝謝樓上兩位>_<
01/24 16:53, 6F

01/24 16:53, , 7F
只是我看書裡面的apple函式裡頭,沒有再重新宣告一個
01/24 16:53, 7F

01/24 16:54, , 8F
hey物件就可以呼叫private的data....我會再盡量看熟的
01/24 16:54, 8F

01/24 16:54, , 9F
遇到問題還請大大不吝指教!!
01/24 16:54, 9F

01/24 23:55, , 10F
是static的嗎
01/24 23:55, 10F

01/25 16:06, , 11F
不用再從新宣告才可以呼叫private阿 那只是舉例
01/25 16:06, 11F

01/25 16:07, , 12F
你要把你要用的物件傳進去或是全域變數
01/25 16:07, 12F

01/25 16:15, , 13F
樓上..............................................
01/25 16:15, 13F
文章代碼(AID): #1DF8zDxj (C_and_CPP)