2 回答

TA貢獻1856條經驗 獲得超11個贊
靜態(tài)成員函數是屬于一個類的,而不是屬于一個類對應的某個對象。好處是所有的對象共享一個靜態(tài)的成員函數,節(jié)省內存。注意靜態(tài)成員函數內不能改變非靜態(tài)成員變量,由于你的例子中都是改變的是靜態(tài)變量,所以靜態(tài)成員函數的定義是可行的。
void Product::display ()
{cout<<sum<<endl; //顯示總和
cout<<average()<<endl; //條用平均的成員變量,再顯示出來
}

TA貢獻1780條經驗 獲得超4個贊
靜態(tài)成員函數屬于類 而非靜態(tài)成員函數屬于對象.
之所以要用靜態(tài)成員函數是因為靜態(tài)成員函數可以用類名來引用他,而不用建立類的實例,非靜態(tài)成員函數沒有實例是不能使用的。這樣就不用用到構造函數和析構函數了,能提高效率。。例如,drawRect成員函數使用了System.out.println成員函數,但實際上你卻未曾創(chuàng)建一個某個System類的對象,這正是因為 out是System類的一個靜態(tài)變量,所以你可以直接使用這個成員函數而無須定義一個System對象。
你所說的常成員函數是不是說加 了const的函數或者是一般的成員函數。如果是前者的話。我解釋下
它加了const是因為可限制修改實參的值。但是你也許會問限制修改實參的值你可以直接給實參加個const就行,是的,實參前面也要加const。函數后面也要加。因為這樣可以增加代碼的可讀性。
當然它也不能修改類其他數據成員的值
添加回答
舉報