問題場景:
component類的.h中定義了公有靜態成員屬性static const char* channel;
但是在.cpp中使用了它,之後編譯報錯:無法解析的外部符號 「public: static char const const component::channel」 (?channel@component@@2pbdb)
追蹤channel的源頭發現找到了好多(因為其他驅動中也定義了),使用過程中不能確定它的源頭。最後發現沒有對靜態成員屬性進行初始化
應該是只宣告了靜態變數,沒有定義該變數(沒有申請記憶體),所以使用不了吧!
const char component::channel = 「chn」;
所以在c++中使用靜態變數的時候一定要記得初始化操作!!!
類中的靜態成員變數 靜態成員函式
類中的靜態成員變數 靜態成員函式?1 類中的靜態成員變數 靜態成員變數屬於整個類,不屬於某個特定的物件,因此無論建立了多少個物件,所有物件都共享類中的靜態成員變數。靜態成員變數必須在類內宣告,類外初始化。2 類中的靜態成員函式 靜態成員函式也是屬於類本身,而不屬於某個特定的物件。靜態成員函式與普通成...
類中的靜態類成員變數
myobj.h pragma once include using namespace std class cmyobj cmyobj account.h ifndef account h define account h include class cmyobj class account acc...
c 類中的靜態成員和非靜態成員
首先呢我們知道c 類中的成員分為成員變數和成員函式兩大類,如果再加上static給以區分的話那麼就會有以下四種 靜態成員變數,非靜態成員變數 靜態成員函式,非靜態成員函式 1 成員變數 我們知道類的靜態成員變數是屬於整個類的,而不是屬於某乙個物件的 不可能據為某個可惡的物件自己擁有,因為這是大家的 ...