已采納回答 / onemoo
從語法上說:函數只要聲明了就可以使用(調用它),所以 cpp 文件只要 include 相應的函數頭文件(頭文件中就是函數聲明)就可以使用這個函數,并不需要知道函數的實現。那么你是好奇“為什么代碼中沒有實現也可調用呢”? 這需要你明白什么是“編譯”和“鏈接”:函數還是需要實現的,不過那是實現在其他 cpp 文件中的。像這樣由多個 cpp 構成的程序,其中每個 cpp 文件都是被編譯器單獨編譯的。每一個 cpp 文件被稱為一個“編譯單元”。 注意編譯器無需得知函數實現即可編譯函數調用,它只要知道函數聲明(需...
2017-09-17
已采納回答 / 慕神4146798
Teacher::Teacher(string?_Name,int?_Age=0){????m_strName?=?_Name;????m_iAge?=?_Age;}這樣就可以了,因為你的_Age沒有默認值,一定要傳值,不然就會出錯
2017-08-06
已采納回答 / 慕娘0545655
根據函數內需要返回的變量的類型來決定函數返回值的類型,比如?int ?swap(int &a, int &b){?int temp = a;?a = b;?b= temp;?return ?temp; ?// 返回的值是int型,所以函數返回類型就是int型}不需要返回值的函數就用void?
2017-07-06
已采納回答 / qq_晨曦Flame_04116129
如果有了using namespace std;就應該用#include <string> 而不是#include<string.h>
2017-06-22
已采納回答 / 慕虎0549817
慕課的編譯器畢竟是簡易的,無法接受一些舊的寫法之類的,就像我們學校的OJ平臺同樣無法像VS2012那么好用,你代碼發上來我們大家看看具體什么問題吧
2017-05-26
已采納回答 / 大力出奇跡丶
str指針指向的是一個類Student,而不是字符數組,所以可以直接寫delete str;個人認為delete str;只是把之前申請的,str所指向的內存區域歸還給了系統,并沒有刪除str指針,賦值NULL是為了防止str指針指向其他“不可描述”的區域,例如一些存放系統配置的區域,造成程序崩潰
2017-05-26
已采納回答 / 慕粉2230345995
定義成員函數前要加類名::void Teacher::setname(string _name){? ? m_strName = _name;}?string Teacher::getname(){? ? ? ? return m_strName;}?void Teacher::setage(int _age){? ? m_iAge = _age;}?int Teacher::getage(){? ? return m_iAge;}?
2017-05-24