C 類提高篇 全域性類物件的執行順序

2021-10-19 07:35:26 字數 1742 閱讀 4353

class1.h

#pragma once

using namespace std;

class class1

;

class1.cpp

#include "class1.h"

#include "class2.h"

#include extern class2 gclass2; //使用全域性變數

class1::class1()

class1::~class1()

class2.h

#pragma once

using namespace std;

class class2

;

class2.cpp

#include "class2.h"

#include "class1.h"

#include class2::class2():m_i(10)

class2::~class2()

main.cpp

#include "class2.h"

using namespace std;

class1 gclass1;

class2 gclass2;

int main()

class1.h

#pragma once

using namespace std;

class class1

;

class1.cpp

#include "class1.h"

#include #include "class2.h"

#include "fun.h"

class1::class1()

class1::~class1()

fun.h

#pragma once

#include "class2.h"

//通過手動呼叫方式建立物件

class2& getclass2obj();

class2.h

#pragma once

using namespace std;

class class2

;

class2.cpp

#include "class2.h"

#include "class1.h"

#include "fun.h"

#include class2::class2():m_i(10)

class2::~class2()

//通過手動呼叫方式建立物件

//靜態變數定義在函式中,使用時才會建立,可以起到節省記憶體作用

//靜態變數只會被定義1次,不會被重複定義

class2& getclass2obj()

main.cpp

#include #include "class1.h"

#include "class2.h"

using namespace std;

class1 gclass1;

int main()

類的執行順序

靜態變數和靜態方法在類載入的時候執行 1 靜態塊優先執行載入 並且靜態塊之執行一次 2 非靜態塊或者非靜態變數其次載入 3 最後是構造器載入 如果某個物件出發執行了第乙個靜態塊 那麼其他所有的靜態塊都由此物件初始化執行 不要再靜態塊new物件 栗子 public class employee sta...

C 類例項化執行順序

確定類例項化時內部內容的執行順序,同時也考慮到繼承的關係。定義乙個父類parentclass和乙個子類subclass。父類 public class parentclass static int s 2 static public string name static parentclass pu...

C 例項化類的執行順序

先進行細分 類的成員分為 字段 屬性 方法 構造方法 成員的修飾符 靜態成員 例項成員 層次結構 父類 子類 先不考慮繼承關係,執行順序為 靜態字段 靜態構造方法 例項字段 例項構造方法 屬性和方法是在呼叫的時候才執行,這裡就不考慮了。如何理解上面的執行過程?假如讓我來設計執行過程,我該如何考慮,依...