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

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果把類中的初始化函數(shù)也注釋就會正常打印數(shù)值了,這是怎么回事呢?

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

class Student
{
public:
???? void setName(string _name)
???? {
??????? m_strName=_name;
???? }
???? string getName()
???? {
???????? return m_strName;
???? }
???? void setGender(string _gender)
???? {
???????? m_strGender = _gender;
???? }
???? string getGender()???? {
???????? return m_strGender;
???? }
??? ?
???? int getScore()
???? {
???????? return m_iScore;
???? }
??? ?
???? /*void initScore()
???? {
???????? m_iScore = 0;
?????? ?
???? }
????? * */
??? ?
???? void study (int _score)
???? {
???????? m_iScore += _score;
???? }

private:
string m_strName;
string m_strGender;
int m_iScore;

};

int main()
{
??? Student stu;
??? //stu.initScore();
??? stu.setName("z");
??? stu.setGender("f");
??? stu.study(5);
??? stu.study(5);
?? ?
??? cout <<? stu.getName() << " " << stu.getGender() << " " << stu.getScore() << endl;
??? return 0;
}

1.沒有明白為什么沒有初始化,score的值不正常,有study 函數(shù)來賦值呢。

stu.study(5);

void study (int _score)
???? {
???????? m_iScore += _score;
???? }

2.? 把類中的初始化函數(shù)也注釋就會正常打印數(shù)值了,這是怎么回事呢?


正在回答

1 回答

你問題問的不是很清楚,大概解釋一下,類中的數(shù)據(jù)成員如果沒有初始化,不同的編譯器在分配內(nèi)存空間會自動賦值,這個值有的編譯器是0,有的編譯器是一個隨機數(shù)(一般是一個很大的數(shù)),所以跟study函數(shù)沒有關(guān)系,以為m_iScore已經(jīng)被賦值了。你的編譯器應(yīng)該是自動賦值為0,所以沒有初始化函數(shù)也會正常打印數(shù)值,但如果再換一個編譯器就不一定了。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

helengood 提問者

謝謝回復(fù)。當(dāng)main里沒有調(diào)用初始化函數(shù)時會自動賦值隨機值,可調(diào)用study函數(shù)時為什么沒有改變這個值呢。當(dāng)我把類定義的初始化函數(shù)注釋了,這時也沒有初始化成員變量,可是study函數(shù)成功賦值了。
2017-03-07 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
C++遠(yuǎn)征之封裝篇(上)
  • 參與學(xué)習(xí)       103386    人
  • 解答問題       732    個

封裝--面向?qū)ο蟮幕?,本教程力求幫助小伙伴們即學(xué)即會

進(jìn)入課程

如果把類中的初始化函數(shù)也注釋就會正常打印數(shù)值了,這是怎么回事呢?

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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