C (1) 成員變數的訪問 建構函式的返回

2021-07-24 16:42:43 字數 1121 閱讀 6276

從零開始學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 生命週期不同 成員變數 隨著物件的建立而存在,隨著物件的消失而消失 區域性變數 隨著方法的呼叫而存在,隨著方法...