有關類的靜態成員初始化

2021-06-09 21:41:35 字數 1170 閱讀 4387

有四個檔案:class.h,class.cpp,fun.h,fun.cpp

1.第一種情況

class.h

#include

class c

;class.cpp

#include "class.h"

int main()

class.h:5: error: iso c++ forbids in-class initialization of non-const static member `i'

2.第二種情況

class.h

#include

class c

;int c::i(1);或者 int c::i = 1;

class.cpp

#include "class.h"

#include "fun.h"

int main()

fun.h

int fun();

fun.cpp

#include "class.h"

int fun()

multiple definition of `c::i

3.第三種情況

class.h

#include

class c;

class.cpp

#include "class.h"

#include "fun.h"

int c::i = 0;

int main()

fun.h

int fun();

fun.cpp

#include "class.h"

int c::i = 1;

int fun()

multiple definition of `c::i'

4.第四種情況

class.h

#include

class c;

class.cpp

#include "class.h"

#include "fun.h"

int c::i = 0;

int main()

fun.h

int fun();

fun.cpp

#include "class.h"

int fun()

輸出: 0

11

類成員初始化

在類內部 初始化的順序 靜態的成員變數 普通的成員變數 構造器的呼叫。在派生類中 初始化的順序 呼叫基類的構造器 按宣告順序呼叫成員的初始化方法 呼叫派生類構造器主體 大多數類的初始化都是按照這些順序結合在一起的。下面是乙個例子 public class test extends sub publi...

類成員初始化

一 預設呼叫的無參建構函式 include include using namespace std class studentid class student int main 8 91011class student 20 2122 intmain 執行結果 重新設計建構函式,對s物件進行初始化,...

C 類的靜態成員變數初始化

今天寫 時用了下c 中的靜態成員變數,發現了乙個以前不注意的現象,特此記錄下。有類如下 class audioplay audioplay audioplay audioplay audioplay audioplay audioplay get 以上 編譯通過,但是鏈結時說無法解析這個靜態變數a。...