類中靜態成員屬性的問題

2021-10-03 07:33:39 字數 441 閱讀 8508

問題場景:

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 成員變數 我們知道類的靜態成員變數是屬於整個類的,而不是屬於某乙個物件的 不可能據為某個可惡的物件自己擁有,因為這是大家的 ...