2. 初始化表的存在只是為了換個方法賦值嗎?其實不然!!!
#include
using namespace std;
class
store
int fruits;
int weapons;};
int main
(void
)
初始化表功能上等同給成員變數賦值(初始化表語法只適用於建構函式)
#include
using namespace std;
class
store
int fruits;
int weapons;};
int main
(void
)
輸出:
this is construct function
99 100
某些情況下,賦值語句是不允許寫在建構函式體內部的(在建構函式前就要首先被構造的成員)
#include
using namespace std;
class
store
int fruits;
int weapons;
/*這裡是乙個int 引用型別*/
int& ref;};
int main
(void
)
this is construct function
99 100 88
為什麼這裡要用到初始化表呢?------類成員變數中有乙個int &ref,有一句話叫「引用即別名」,建構函式函式體當中已經可以使用使用ref這個引用了,但是這時還不知道ref是對誰的引用呢!!!,所以引用必須在函式體之前被定義,所以只好使用初始化表咯
類當中有自己的成員子物件,在呼叫類的建構函式前,需要先呼叫成員子物件。(成員子物件如果有預設建構函式,無須再特意使用初始化表來構造成員子物件;但是一旦寫了乙個建構函式,沒有預設建構函式,就必須使用初始化表提供成員子物件的構造方式)
#include
using namespace std;
class
store
int fruits;
int weapons;};
class
mastore
store m_store;
/*類mastore 有乙個成員子物件 m_store*/
int m_subid;};
int main
(void
)
輸出:
this is construct function
99 100
07 C語言 常量
常量是固定值,在程式執行期間不會改變。這些固定的值,又叫做字面量。常量可以是任何的基本資料型別,比如整數常量 浮點常量 字元常量,或字串字面值,也有列舉常量。常量就像是常規的變數,只不過常量的值在定義後不能進行修改。整數常量可以是十進位制 八進位制或十六進製制的常量。字首指定基數 0x 或 0x 表...
07 C語言記憶體分析
c語言記憶體分析 一 進製 概念 進製是一種計數方式,是數值的表現形式 4種主要的進製 十進位制 0 9 二進位制 0和1 八進位制 0 7 十六進製制 0 9 a b c d e f c語言在預設的情況下為十進位制。int num 1010 十進位制 int num 0b1100 二進位制,以0b...
07 C 繼承和多型
建立於2017 12 25 1.繼承的形式 include 繼承 的重用性 using namespace std 人類 class human protected char name int age 男人 class man public human private 兄弟 char brother...