static成員變數的使用

2022-03-16 19:41:26 字數 973 閱讀 6864

最近自己在研究c++中static成員變數的注意事項,只是自我研究,僅供參考:

例如:file1.h

#ifndef file_1_h

#define file_1_h

void func1(void);

void func2(void);

static int func(void);

#endif // file_1_h

file1.cpp

#include "file1.h"

#include using namespace std;

static int a;

void func1(void)

void func2(void)

void func(void)

編譯錯誤如下:

c:\users\eadefji\codeblocksprojects\1007\file1.cpp||in function `void func()':|

c:\users\eadefji\codeblocksprojects\1007\file1.cpp|23|error: new declaration `void func()'|

c:\users\eadefji\codeblocksprojects\1007\file1.h|6|error: ambiguates old declaration `int func()'|

c:\users\eadefji\codeblocksprojects\1007\file1.cpp|23|warning: 'void func()' defined but not used|

||=== build finished: 2 errors, 1 warnings (0 minutes, 0 seconds) ===|

所以,最好不要在標頭檔案中定義(初始化)某個靜態資料成員或靜態成員函式,而應該在相應的.cpp檔案中定義及使用

static 成員變數以及static成員函式

靜態成員變數必須在類外實現初始化。靜態資料成員儲存在靜態儲存區,在程式整個執行期間都存在。sizeof 類名student sizeof 物件名s1 為不包含靜態資料成員的記憶體大小。常用來解決計數問題 include using namespace std class student static...

static修飾成員變數

static 靜態 修飾符 static修飾成員變數 如果乙個資料需要被所有物件共享使用的時候,那麼即可使用static修飾該成員變數。訪問方式 方式1 可以使用物件進行訪問。格式 物件.靜態屬性名 方式2 可以使用類名進行訪問。格式 類名.屬性名。靜態成員變數要注意的細節 1.靜態的成員變數可以使...

static修飾成員變數的使用方法

package cn.dali.code02 自動生成學號 public class static01 public int getid public void setid int id public string getname public void setname string name pu...