最新回答 / 不許丿摸我耳朵
可能你不太理解頭文件,頭文件其實就是一個庫,它封裝了很多函數和其他接口等各種聲明,現在你自己寫一個頭文件就相當于你自定義一個申明#include "teacher.h" 只需要放在你的功能模塊里面,編譯的時候,在同一文件夾下編譯器會自動尋找主函數(demo.cpp的main函數)入口,進行鏈接編譯,如果是在Linux下,往往還需要兩個cpp文件聯合編譯
2018-04-24
最贊回答 / 未來藍圖
區別:1、構造函數的函數名稱與類名同名,其他方法(函數)名稱可以自定義。2、構造函數僅在對象被創建時系統會根據給定的參數以及類中的構造函數定義進行選擇調用,如果類中沒有定義構造函數,系統默認會提供一個無參構造空函數,什么都不會做,只是滿足接口要求,構造函數不能被顯式調用。其他函數根據程序員需要而調用,且必須顯式調用。3、由于對象創建后,系統必須返回新建對象的地址,賦值給指針變量(C++,C#中是將引用賦值給對象變量,其實一樣,內部也是對象地址),那么換句話說,返回接口被系統占用了,因此構造函數就不能返回任...
2018-03-26
最贊回答 / 不斷進取
棧:是由編譯器在需要時自動分配,不需要時自動清除的變量存儲區。通常存放局部變量、函數參數等。堆:是由new分配的內存塊,由程序員釋放(編譯器不管),一般一個new與一個delete對應,一個new[]與一個delete[]對應。如果程序員沒有釋放掉, ? ? ? ?資源將由操作系統在程序結束后自動回收。
2018-03-25
最贊回答 / SKY寒恒
因為類中定義的m_iScore僅僅只是聲明,并沒實例化,沒有實例化就沒有存儲空間,那么m_iScore就不能初始化;只有類實例化成對象,編譯器才會給類中的數據成員分配存儲空間。我也是剛學,回答得不正確的話,請多多包涵!
2018-03-18
最新回答 / B_L
為對象申請空間需要在后面加個括號,比如:Student *str = new Student(); 但是為普通類型申請內存,可以沒有。如果加了括號則是初始化方法的一種,如:int *p=new int(2); //也就是*p=2;
2018-03-05
最贊回答 / 獨秀一方
如果是void main()就不能有返回值,再return編譯器就會報錯。而int main(void)是不需要參數的意思,因為int main()實際上是int main(int argc, char *argv[]) 的縮寫需要參數,argc為給程序的參數的個數,argv中保存的是給函數的參數,都是字符串。所以int main(void)和int main(int argc, char *argv[])都需要返回值。
2018-03-04