友人の機能が、フレンド機能はクラス内のプライベートデータを変更できますか?
のポインタを使用せずにオブジェクトのプライベートデータを変更してオブジェクトを送信できるかどうかを知りたいと思います。
友だちの機能はメンバー機能のようにアクセスできますか?例については
:
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
少し説明や参考例がありますか?ありがとうございました – Ali
@Ali、私はあなたのコメントを取得していませんが、私はあなたがコードを変更したのを見ますが、機能は引き続き 'myinfo'を値で受け取ります。' c'はコピー(デフォルトコピー)この一時的な。渡されたインスタンスを変更する場合は、参照を受け入れるようにシグネチャを変更する必要があります。 – Nim