1樓:
1.如果在乙個函式類定義,那麼在這兩個類裡的資料成員都未初始化,都是不確定的值。如果是在全域性空間定義,那built-in type就是預設值,類就是預設構造的。你可以自己列印出來看看
2.是不是 class type 在進行預設初始化的時候遞迴呼叫父類的建構函式,而且類中的資料成員也按照規則進行初始化
是的,當前類只負責自己部分的資料成員,父類的資料成員交給父類去初始化,規則遵守父類初始化資料成員的初始化規則。
即如果是 built-in type 就初始化為0,如果是 class type 就呼叫預設建構函式這個built-in type不一定就初始化為0,要看你的定義在哪個空間,這個你可以自己寫程式驗證
3.如果類裡沒有其他的建構函式,或者你在呼叫的時候採用預設構造的方法,編譯是會報錯的。
4.一般程式的區域性變數儲存在棧上,動態分配的內存在堆上。
2樓:
如果物件定義在堆上,然後你的建構函式又沒有顯式初始化,那麼data member就是未定義的。
#include
#include
#include
#include
#include
using
namespace
std;
structA};
intmain()
c 中如何給類的私有成員賦值?
zhLzm 最好的是通過建構函式給類的私有成員進行初始化 可以有多種初始化建構函式 如果需要在操作中設定某個私有變數基於C 類的封裝特性,最好編寫一個函式去修改需要改變的成員產量。 王祺 假設你的類在a.h中 define private public include a.h undef priva...
C 在類中能定義本身型別的成員嗎?
番茄.go 至少有兩種情況是允許的。指標靜態成員變數 Member.cpp include classA AA a int main 執行 g Wall O2 o Member Member.cpp Member An object of class A.An object of class A.A...
C 中類B需要訪問類A的私有成員變數,除了將B宣告為A的友元類外還有其它方法嗎?
春秋代序 友元函式可不可以呢。將類B的成員函式宣告為類A的友元函式,這樣的話比整個類宣告為友元類更安全一點。現在初學c 的大學生應該都會想到教材的友元成員函式這種簡單方法吧,不知道樓主是不是這個意思,如果樓主是所有友元方法都不想用,那就打擾了 陳俊皓 紙上談兵的方法是,讓類的乙個公共成員函式返回這個...