構造方法
構造方法不能夠建立物件,且構造方法的主要作用是完成物件的初始化工作(如果寫的類中沒有建構函式,那麼編譯器會預設加上乙個無引數且方法體為空的建構函式)。它能夠把定義物件時的引數傳給物件的域。意思就是當建立乙個物件時,這個物件就被初始化。若此建構函式不為空,則會字建立物件時就執行建構函式裡面的**。
class helloworld
}
若是類中已經有了有參的構造方法,那麼就不會再有無參的構造方法,系統將不會再建立乙個無參的構造方法。用以下的**進行解析:
這段**的執行結果為
現在我將無參的構造方法注釋掉:
執行時便出現了錯誤
因為this()代表的時無參的構造方法,而之前我們說了,當已經有了有參的構造方法時,將不會自動生成無參的構造方法。
靜態static
執行截圖如下
現在我將第8行的p2.country = 「日本」注釋掉,並且再15行的string country的前面加上static關鍵字,如下:
執行結果與之前的一樣,,由此我們可以知道static可以讓資料被共享。
static的特點:
隨著類的載入而載入,也就是當你的類載入是,靜態區的資料也會跟著載入;
優先於物件存在,至於這個的原因就是因為第乙個特點,他是隨著類載入而載入的,自然是比物件優先存在;
被類的的所有物件共享,這是為了節省記憶體;
可以通過類名呼叫,示例如下:
執行結果如下
靜態變數與成員變數之間的不同(靜態變數也叫做類變數,成員變數也叫做物件變數):
1.所屬不同,靜態變數屬於類,成員變數屬於物件;
2.儲存位置不同,靜態變數儲存在靜態區,成員變數儲存在堆記憶體中;
3.記憶體中的出現時間不同,靜態變數是隨著類的載入而載入,隨著類的消失而消失。成員變數是隨著物件的建立而存在,隨著物件的消失而消失;
4.呼叫不同,靜態變數可以直接通過類名來呼叫靜態變數,成員變數則必須通過物件來呼叫;
main方法的格式以及其解析:
如果乙個類的所有方法都是靜態的,我們需要多做一步,就是在構造方法前加上private,也就是私有構造方法,目的是不讓其他的類建立本類的物件,直接用類名.呼叫即可。
static 靜態方法與靜態成員
1 test.h 1 class test 2 此處,static 與 virtual不能共用,此時這裡去掉virtual關鍵字。2 test.h 1 class test 2 test.cpp 1 include 2 include test.h 3 4using namespace std 56...
static 靜態方法
乙個不需要任何主叫物件的方法就是靜態方法。靜態方法需要關鍵字static來宣告於定義,他不需要主叫物件,因為它不屬於物件而是屬於類。靜態方法可以被子類繼承,也可以被重寫,但是不能實現多型性。多型性的實現重點在於動態繫結,每一次在呼叫相應方法的時候都是去動態查詢匹配,靜態方法是在類初次載入的時候就已經...
static靜態方法
static也可以修飾方法,使之成為靜態方法,我們通常用的入口函式,也就是main方法就是乙個靜態方法。注意事項 靜態方法可以直接呼叫靜態變數,不能呼叫非靜態成員變數。public class helloworld 2.可以通過建立類的物件來呼叫非靜態成員 public class hellowor...