我想知道如果一個朋友功能可以更改班級中的私人數據,而不使用指針併發送出該對象的指針,而不使用指針。朋友功能可以更改班級中的私人數據嗎?
我的意思是一個朋友功能有訪問像一個成員函數?
例如:
class myinfo {
private:
char name[20];
int id;
float income;
public:
void showInfo(void);
myinfo(void);
friend void updateInfo(myinfo);
int main () {
myinfo j;
updateInfo(j); // calling the friend function
return 0;
}
void updateInfo(myinfo c) {
strcat(c.name, ":updated");
c.id++;
c.income += 1.1;
對不起,我已經改變了我的代碼位,這是一個錯誤,我用從我工作的一個例子,但並不真正使任何意義。 – Ali 2012-02-09 00:09:25
你可以給一點解釋或參考的例子嗎?謝謝 – Ali 2012-02-09 00:13:57
@Ali,我沒有得到你的評論,我看到你改變了代碼,但是就目前而言,該函數仍然接受'myinfo'的值,所以'c'是一個副本(默認副本),並且你修改這是暫時的。如果要修改傳入的實例,則需要更改簽名以接受引用... – Nim 2012-02-09 00:14:15