所以我試圖學習如何使用朋友類更改私有類成員的值,但是朋友類無法更改主類的值,這是我所做的代碼,我是編碼世界的新手,請幫幫我:)
#include <iostream>
using namespace std;
class A {
private:
int marks;
public:
show_marks()
{
cout <<marks;
}
set_marks( int num )
{
marks =num;
}
friend class B;
};
class B{
public:
show_A_marks(A teacher, int num){
teacher.marks= num;
}
};
int main(){
A teacher;
teacher.set_marks(10);
teacher.show_marks();
cout <<endl;
B student;
student.show_A_marks(teacher,20);
teacher.show_marks();
}
- 這應該列印: 10 20 但正在列印: 10 10
uj5u.com熱心網友回復:
在函式中:
show_A_marks(A teacher, int num)
你是teacher按價值傳遞的。您正在制作該值的副本,并編輯該副本。當函式回傳時,副本消失了。您需要通過參考傳遞它:
show_A_marks(A& teacher, int num)
// ^ reference to A
請參閱按參考傳遞與按值傳遞之間的區別是什么?了解更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/330381.html
