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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么拷貝函數(shù) 有cosnt不行呢?

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

class Teacher
{
public:
? Teacher(string name = "ti", int _age = 100);
? Teacher(const Teacher &tea);

? const double m_dPi;

};

Teacher::Teacher(string name, int _age)
? :m_dPi(8)
{

? ?cout << "teacher init is run !\n" << endl;
}

Teacher::Teacher(const Teacher &tea)
{
? ? cout <<"Teacher::Teacher(const Teacher &tea)"<<endl;
}

int main()
{
? ?Teacher t;
? ?Teacher t1 = t;

}

?我發(fā)現(xiàn) 把?const double m_dPi;改成?double m_dPi;就可以了,

但是不知道為什么?

正在回答

3 回答

你把m_dPi在類中定義成常量, 就意味在只能在構(gòu)造函數(shù)中使用初始化列表的方式來初始化, 可是你的復(fù)制構(gòu)造函數(shù)卻沒有用初始化列表的方式來初始化m_dPi的值, 所以編譯出錯(cuò)。

所以這也能解釋為什么你把m_dPi定義成變量編譯器就可以通過了。

你也可以把復(fù)制構(gòu)造函數(shù)這么修改:

Teacher::Teacher(const Teacher &tea) :m_dPi(8)

{
? ? cout <<"Teacher::Teacher(const Teacher &tea)"<<endl;
}

其實(shí)理解了默認(rèn)的復(fù)制構(gòu)造函數(shù)原理就好理解了, 系統(tǒng)默認(rèn)的構(gòu)造函數(shù)是單純的去給相應(yīng)的值去對(duì)應(yīng)復(fù)制, 可是我們聲明的m_dPi是常量, 一旦作為左值被賦值編譯器就會(huì)報(bào)錯(cuò)。

個(gè)人理解,歡飲糾錯(cuò)。

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

面具VS口罩

nice
2017-03-21 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_K_152

666
2017-12-04 回復(fù) 有任何疑惑可以回復(fù)我~

66666666666

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

我也有相同的問題,求解

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

舉報(bào)

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

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

進(jìn)入課程

為什么拷貝函數(shù) 有cosnt不行呢?

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

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

幫助反饋 APP下載

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

公眾號(hào)

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