靜態(tài)成員函數(shù)只能訪問靜態(tài)數(shù)據(jù)成員 靜態(tài)成員函數(shù)為什么不能訪問本類中的非靜態(tài)成員?
靜態(tài)成員函數(shù)為什么不能訪問本類中的非靜態(tài)成員?程序最終將在內(nèi)存中執(zhí)行,變量只有在占用內(nèi)存中的某個位置時才能被訪問。類的靜態(tài)成員(變量和方法)屬于類本身,在加載類時會分配內(nèi)存,可以通過類名直接訪問內(nèi)存。
靜態(tài)成員函數(shù)為什么不能訪問本類中的非靜態(tài)成員?
程序最終將在內(nèi)存中執(zhí)行,變量只有在占用內(nèi)存中的某個位置時才能被訪問。類的靜態(tài)成員(變量和方法)屬于類本身,在加載類時會分配內(nèi)存,可以通過類名直接訪問內(nèi)存。非靜態(tài)成員(變量和方法)屬于類對象,因此只有在生成類對象(創(chuàng)建類實例)然后通過類對象(實例)訪問時才會分配內(nèi)存。在靜態(tài)成員中訪問類的非靜態(tài)成員時出錯的原因是,當該類的非靜態(tài)成員不存在時,該類的靜態(tài)成員已經(jīng)存在。當然,訪問內(nèi)存中不存在的東西時會出錯:類ca{私人:INTA//非靜態(tài)成員在創(chuàng)建類實例時分配內(nèi)存。一個類的不同實例對應不同的內(nèi)存區(qū)域
靜態(tài)成員函數(shù)不能訪問非靜態(tài)成員變量。這是一條規(guī)則。但你可以改變解決問題的方法。除了鎖定靜態(tài)成員函數(shù)外,線程入口函數(shù)也可以是全局函數(shù)。在全局函數(shù)中獲得主窗口的句柄后,可以訪問各種成員變量。我希望它能幫助你。
靜態(tài)成員函數(shù)可以訪問非靜態(tài)成員變量嗎?
可以直接訪問非靜態(tài)功能。不能直接訪問靜態(tài)函數(shù),因為可以通過class::functions而不是對象直接調(diào)用靜態(tài)函數(shù)。非靜態(tài)函數(shù)必須通過對象調(diào)用,這也涉及到實例化對象時的內(nèi)存分配。