物件導向高階程式設計

2021-09-26 13:21:22 字數 1962 閱讀 8517

相同class的各物件互為友元

class complex

int func(const complex& param)

private:

double re,im;

}

string

inline string::string(const char* cstr=0)

else

}inline string::~string()

拷貝賦值要先判斷是不是自己,然後殺掉自己

string& string::operator=(const striing& str)

轉換函式:operator double() const //注意const

乙份資料,多個形式或乙個形式多份共享時(繼承+委託)

class subject

void set_val(int value)

void noitfy() }

};class observer

composite設計模式

乙個容器既可以放左邊的東西,也可以放右邊的東西,可以把左邊和右邊繼承乙個base,放base

}智慧型指標

templateclass shared_ptr

t* operator->() const

shared_ptr(t* p):px(p){}

private:

t* px;

long* pn;

};

迭代器

//list的迭代器

reference operator*() const

pointer operator->() const

成員模板——大量用在建構函式,子類可以傳給父類的建構函式

templateclass shared_ptr:public _shared_ptr<_tp>

...}

base* ptr=new derived1; //up-cast

shared_ptrsptr(new derived1); //模擬up-cast

模板模板引數

template< typename t,

template< typename t> class container

>

class xcls

tempalte< typename t>

using lst=list>;

xclsmylst1; //x,編譯失敗,因為list有第二個模板引數

xclsmylst2; //可以通過

如果const和非const成員函式同時存在,const物件只能呼叫非const成員函式,const物件只能呼叫const成員函式

以上總結自侯捷老師的c++物件導向高階程式設計

python 物件導向高階程式設計

python 裝飾器 property使用 classscreen property defwidth self returnself.width pass width.setter defwidth self,value self.width value property defheight se...

python物件導向高階程式設計

1.繫結方法 給所有例項都繫結方法,可以給class繫結方法 def set score self,score self.score score student.set score set score 給class繫結方法後,所有例項均可呼叫。但是,如果我們想要限制例項的屬性怎麼辦?比如,只允許對s...

物件導向 高階

json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...