第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

請問以下這個程序,為何要聲明為靜態(tài)成員函數呢?求解釋~

請問以下這個程序,為何要聲明為靜態(tài)成員函數呢?求解釋~

縹緲止盈 2021-12-31 11:07:58
#include<iostream>using namespace std;class Product{public:Product(int m,int q,float p):num(m),quantity(q),price(p){};void total();static float average();static void display();private:int num;int quantity;float price;static float discount;static float sum;static int n;};void Product::total (){float rate=10;if(quantity>10)rate=0.98*rate;sum=sum+quantity*price*(1-discount);n=n+quantity;}void Product::display (){cout<<sum<<endl;cout<<average()<<endl;}float Product::average (){return(sum/n);}float Product::discount=0.05f;float Product::sum=0;int Product::n=0;int main(){Product Prod[3]={Product(101,5,23.5f),Product(102,12,24.56f),Product(103,100,21.5f)};for (int i=0;i<3;i++)Prod[i].total();Product::display ();return 0;}
查看完整描述

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; //條用平均的成員變量,再顯示出來
}

查看完整回答
反對 回復 2022-01-03
?
Helenr

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。函數后面也要加。因為這樣可以增加代碼的可讀性。
當然它也不能修改類其他數據成員的值



查看完整回答
反對 回復 2022-01-03
  • 2 回答
  • 0 關注
  • 333 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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