c 如何實現用函式對多個物件的private資料直接進行修改

2022-06-24 08:40:04 字數 923 閱讀 1897

1樓:匿名使用者

我想你是有些概念沒有弄清楚。

你所指的private資料是靜態的嗎?只有類的靜態成員才是類的所有物件共有的,只有乙份,這樣也就不存在你所指的問題。

如果不是靜態成員,則每個物件都有乙份自己的mark,你只需要在addup中列舉所有的物件相應的mark成員,然後進行修改即可。

不知明白沒有?

2樓:陳宗權

既然是私有成員,就不要

stu[num].mark+=change;

不妨改成

stu[num].addmark(change);

其中addmark定義成student類的公開成員函式,函式體就一句對addup函式沒有要求。

3樓:匿名使用者

可以考慮 friend,友元函式

不過這是破壞 oo 的做法

4樓:匿名使用者

沒辦法,要不就寫個setter要不就改成public的。

5樓:匿名使用者

student類提供乙個addmark的公共方法吧,或者為其實現+=的操作符,你想直接這麼用肯定是不行的。

6樓:

首先能夠訪問類中的私有資料只有兩種途徑:一、類成員函式,它是類的一部分,可以訪問類的一切資料報括私有公有保護三種;二、友元函式,它不屬於類,但是可以像類成員函式一樣訪問一切資料,但是這樣破壞了類的封裝性,所以能用成員函式的地方盡量用成員函式。

類成員函式:

class student

private:

int mark;

}(具體呼叫就不用我說了,呵呵)

二、友元函式

class student

private:

int mark;}

C如何實現多個textbox中的值進行資料庫查詢

首先要寫好 config 配置檔案,寫好sql語句,寫方法執行sql命令返回乙個資料集或資料表 再取出資料 textbox.text table1.column x y tostring sql語句拼錯了,你把strsql列印出來就知道哪齣問題了 缺少空格和and的拼接 用c 編寫乙個介面,利用乙個...

c語言編寫排序函式,實現對主函式中陣列的公升序排序

include void mysort int p,int n int main int argc,char argv i mysort a,10 for i 0 i 10 printf d a i printf n return 0 void bubble sort int a,int n p2 ...

c下,解決方案多個專案如何實現using某個子專案

選乙個主專案,包含入口函式main,選擇該專案,單擊選新增引用,選擇要新增的專案,點確認,再使用 using 引用某個專案就可以。c 中同乙個解決方案有多個專案時,如何相互運用?c 中同乙個解決方案有多個專案時,可以用以下 相互運用 form2 f2 new form2 private void b...