標籤:
我們知道大神們在設計C++時候就給C++有六個預設的函數,所謂預設就是,無需我們這些程式員們動手去寫,只要你在將類執行個體化,即建立一個對象,在利用對象進行資料操作時候,就會編譯器自動調用預設的函數,但是預設函數並不是C++希望我們使用的,真正強大的是我們在這些預設的基礎之上,自己 DIY函數來實現預設函數所不能做到的和它能做到,只有這樣才能將自己的功力大增。下面是我在編寫C++ 函數時候產生的一些思考:
六個預設的函數依次是:
<pre name="code" class="cpp">/********************************************************************** * * Copyright (c)2015,WK Studios * * Filename: str.h * * Compiler: GCC vc 6.0 * * Author:WK * * Time: 2015 31 5 * **********************************************************************/class S{public:S(int i=0,double n=0):m_data(i),data(n){cout<< this<<"\n";}private:int m_data; double data;};int main(){S s0; //1 //此時就是我們自訂了建構函式編譯器就不會再調用預設的無參建構函式, //如果想要這麼做,必須自訂一個無參建構函式,或者自訂預設的建構函式, //就像上面函數的那樣,也就是說如果麼有預設值,就會報錯,因為找不到對應的建構函式S(10);//2S(10.8); //3S((int)10.8);//4S ss(10,20);//5S ss1(10.8);//6S ss2((int)10.8);//7S s(10,10.8);//8 //調用了建構函式S s22=(10,10.8);//9S s1 = (10,10.8);//10
//C++ 的六個預設函數//在使用的時候那些函數時透明的,就是那些函數學了一招隱藏技術 啊哈哈哈啊 class Default{public:/* Default(){}//預設建構函式 Default(const Default&){}//拷貝建構函式 ~Default(){}//解構函式 Default& operator=(const Default&){}//賦值運算子 Default* operator&(){}//取址運算子 const Default* operator&()const{}//取址運算子 const*/private:int m_Data; };int main(){ Default t;//調用建構函式Default t1=t;//Default t1(t);//調用拷貝建構函式 Default t2;t2=t; //調用賦值函數Default *pt = &t;//調用取值函數const Default t3;const Default *pt1 = &t3;//調用const取值函數 //調用解構函式return 0;}
C++的強大之處不在於有多少預設預設的封裝的方法,而是,在與在滿足這些基本函數的基礎上給予編程者最大的創造空間。這些預設的函數只能保證C++的正常模式,在此基礎之上有極大的介面空間來設計與實現方法
1.我們看一個程式
關於C++函數思考1(預設的六大函數)