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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么這里不可以直接傳給構(gòu)造函數(shù)?

為什么這里不可以直接傳給構(gòu)造函數(shù)?

C++
侃侃爾雅 2023-04-20 15:15:14
#include "iostream.h"#include "string.h"class stud //新建一個(gè)學(xué)生類{private:int no;//學(xué)號(hào)char name[10];//姓名int deg;//成績(jī)public:static int sum;//總分static int num;//人數(shù)stud(){}stud (int no1,char *name1,int deg1)//構(gòu)造函數(shù){no=no1;strcpy(name,name1);deg=deg1;sum+=deg;num++;}void disp(){cout<<"學(xué)號(hào):"<<no<<endl<<"姓名:"<<name<<endl<<"成績(jī):"<<deg<<endl;}float avg(){return float (sum)/deg;}};int stud:: num=0;int stud:: sum=0;main(){  stud a[3];//定義a數(shù)組,準(zhǔn)備用循環(huán)建立3個(gè)學(xué)生對(duì)象int no2,deg2;char name2[10];for(int i=0;i<3;i++){cin>>no2>>name2>>deg2;a[i].stud(no2,name2,deg2);//調(diào)用構(gòu)造函數(shù),報(bào)類型錯(cuò),這里是向把這三個(gè)變量傳給構(gòu)造函數(shù)}for(int j=0;j<3;j++){a[j].disp();}cout<<"sum="<<stud::sum<<' '<<"num="<<stud::num<<endl;}
查看完整描述

3 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

構(gòu)造函數(shù)是一種特殊的成員函數(shù)。當(dāng)說明對(duì)象時(shí),被自動(dòng)調(diào)用,而不能象普通成員函數(shù)那樣被顯示調(diào)用。
如果想完成你的想法,把你的帶參數(shù)的構(gòu)造函數(shù)改為普通成員函數(shù)就可以了。


查看完整回答
反對(duì) 回復(fù) 2023-04-23
?
繁星點(diǎn)點(diǎn)滴滴

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊

構(gòu)造函數(shù)C++規(guī)定不能顯式調(diào)用:a[i].stud(no2,name2,deg2);
原因是構(gòu)造函數(shù)只是在創(chuàng)建對(duì)象時(shí)才調(diào)用,你的不是構(gòu)建,此時(shí)對(duì)象已經(jīng)存在了
如果實(shí)在是想這樣做,可以利用無名對(duì)象賦值這樣做
a[i]=stud(no2,name2,deg2);
已存在對(duì)象只能用賦值或者另外設(shè)計(jì)一個(gè)類似的成員函數(shù)來調(diào)用

查看完整回答
反對(duì) 回復(fù) 2023-04-23
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

這樣試試
int sum; //不要放到class中
int num; //不要放到class中
class stud
{
private:
int no;
char name[10];
int deg;
public:
stud ()
{
no=0;
deg=0;
memset( name , 0 , sizeof(name) );
}
void student (int &no1,char *name1,int °1)
{
no=no1;
memcpy( name , name1 , sizeof(name) );
deg=deg1;
sum+=deg;
num++;
}
void disp()
{
cout<<"學(xué)號(hào):"<<no<<endl
<<"姓名:"<<name<<endl
<<"成績(jī):"<<deg<<endl;
}
float avg()
{
return float (sum)/deg;
}

} ;
int main()
{
stud a[3]; //聲明一個(gè)對(duì)象數(shù)組,進(jìn)行對(duì)象數(shù)據(jù)初始化,我加了一個(gè)構(gòu)造函數(shù)
int no2,deg2;
char name2[10];
sum=0;
num=0;
for(int i=0;i<3;i++)
{
cin>>no2>>name2>>deg2;
a[i].student(no2,name2,deg2);//這里不要再調(diào)用構(gòu)造函數(shù)
}
for(int j=0;j<3;j++)
{
a[j].disp();
}
cout<<"sum="<<sum<<' '<<"num="<<num<<endl;
return 0;
}

查看完整回答
反對(duì) 回復(fù) 2023-04-23
  • 3 回答
  • 0 關(guān)注
  • 177 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)