從零開始學c++的部分,開始了……
class裡的member data預設是private。如果是private的話,則外部是不能訪問的,只能通過其member function訪問。這體現了c++甚至整個oop的封裝性。
把其標紅,意思就是,對於乙個class的member data,有且僅有這個class(注意,是class,不是這個class的乙個某乙個實體obj)的member function可以訪問。
下面給一段比較confusing的**。
乙個複數class,叫ccomplex。
ccomplex的h檔案。
#ifndef c_complex_h
#define c_complex_h
class ccomplex
;#endif
ccomplex的cpp檔案。
#include "ccomplex.h"
#include "iostream"
using namespace std;
ccomplex::ccomplex()
ccomplex::ccomplex(double real,double imag)
ccomplex::~ccomplex()
void ccomplex::display()
就問,為什麼
ccomplex ccomplex::cadd(ccomplex & c2)
看起來,這個constructor並沒有返回。難道它什麼都不返回嗎?
如果是的話,那為什麼cadd這個member function裡,最後一條
return ccomplex(real+c2.real,imag+c2.imag);
可以這樣寫?
cadd函式的prototype是這樣的啊!
ccomplex ccomplex::cadd(ccomplex & c2)
那這樣看起來,constructor返回的,並不是沒有返回,而是:
constructor actually returns an object named anonymous(nameless) object.
15 成員函式的分離
1 標頭檔案的宣告 pragma once 表示的是只包含一次 ifndef a h意思是 if not define a.h 如果不存在a.h 接著的語句應該 define a h 就引入a.h 最後一句應該寫 endif 否則不需要引入 ifndef teacher2 h define teac...
專案1 成員函式,有員函式和一般函式的區別(1)
all right reserved.檔名稱 test.cpp 作 者 韓雙志 完成日期 2016年4月10日 版本號 v1.0 include using namespace std class time void display1 friend void display2 time int ge...
07 01成員變數和區域性變數的區別
成員變數和區域性變數的區別?a 在類中的位置不同 成員變數 在類中方法外 區域性變數 在方法定義中或者方法宣告上 b 在記憶體中的位置不同 成員變數 在堆記憶體 區域性變數 在棧記憶體 c 生命週期不同 成員變數 隨著物件的建立而存在,隨著物件的消失而消失 區域性變數 隨著方法的呼叫而存在,隨著方法...