亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下代碼有什么錯誤,請問該怎么改正它?

如下代碼有什么錯誤,請問該怎么改正它?

人到中年有點甜 2022-12-17 17:13:30
#include<iostream>using namespace std;class Animal;void SetValue(Animal&, int);void SetValue(Animal&,int, int);class Animal{public:friend void setValue(Animal&, int);protected:int itsWeight;int itsAge;};void SetValue(Animal& ta, int tw){ta.itsWeight = tw;}void SetValue(Animal& ta, int tw, int tn){ta.itsWeught = tw;ta.itsAge = tn;}int main(){Animal peppy;SetValue(peppy, 5);SetValue(peppy, 7, 9);}(2)將上面程序中的友元改成普通函數,為此增加訪問類中保護數據的成員函數
查看完整描述

1 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

(1)改正后的代碼如下(改動的地方見注釋)

#include<iostream>

using namespace std;

class Animal;

void SetValue(Animal&, int);

void SetValue(Animal&,int, int);

class Animal

{

public:

friend void SetValue(Animal&, int);//這里setValue改成SetValue

friend void SetValue(Animal&, int,int);//這里加一個SetValue重載函數

protected:

int itsWeight;

int itsAge;

};

void SetValue(Animal& ta, int tw)

{

ta.itsWeight = tw;

}

void SetValue(Animal& ta, int tw, int tn)

{

ta.itsWeight = tw;//這里ta.itsWeught改成ta.itsWeight

ta.itsAge = tn;

}

int main()

{

Animal peppy;

SetValue(peppy, 5);

SetValue(peppy, 7, 9);

}

(2)將上面程序中的友元改成普通函數后的代碼如下(改動的地方見注釋,不需要增加成員函數)

#include<iostream>

using namespace std;

class Animal;

void SetValue(Animal&, int);

void SetValue(Animal&,int, int);

class Animal

{

public:

void SetValue(Animal&, int);//這里去掉friend

void SetValue(Animal&, int,int);//這里去掉friend

protected:

int itsWeight;

int itsAge;

};

void Animal::SetValue(Animal& ta, int tw)//這里加類作用域

{

ta.itsWeight = tw;

}

void Animal::SetValue(Animal& ta, int tw, int tn)//這里加類作用域

{

ta.itsWeight = tw;

ta.itsAge = tn;

}

int main()

{

Animal peppy;

peppy.SetValue(peppy, 5);//這里函數名前加對象名

peppy.SetValue(peppy, 7, 9);//這里函數名前加對象名

}


 


查看完整回答
反對 回復 2022-12-21
  • 1 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號