真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

友元函數(shù)<<的模板化-創(chuàng)新互聯(lián)

1、構(gòu)造函數(shù)的一種使用

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務高平,十年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108
int main(void){
    //Test t1 = 10;// 在構(gòu)造函數(shù)中尋找只有一個參數(shù)的
    
    //手動的調(diào)用構(gòu)造函數(shù);
    Test t2 = Test(1, 2);  //直接調(diào)用構(gòu)造函數(shù)--->匿名對象;
    //直接調(diào)用Test的有參構(gòu)造函數(shù),初始化t2對象;  只會調(diào)用一次構(gòu)造函數(shù)(直接把匿名對象轉(zhuǎn)成t2);
    
}

2、構(gòu)造與賦值語句

Test g(){
    
    //返回為對象,我就給你返回一個新的對象(匿名對象);
}

int main(void){
    Test t1(1, 2); 
    Test t2; 

    Test t3 = t1; //用t1初始化t3,調(diào)用拷貝構(gòu)造函數(shù);
    Test t3(t1);
    t2 = t1; //利用t1給t2賦值,調(diào)用賦值語句;

    Test m = g(); //函數(shù)的返回值為對象,用匿名對象初始化m,此時C++編譯器將直接把匿名對象轉(zhuǎn)化為有名對象m;
    m = g();//此時匿名對象將沒有用,賦值完成,沒有轉(zhuǎn)正,將被析構(gòu)

}

//在定義類時,只要你寫了構(gòu)造函數(shù),則必須要用你自己寫的,此時C++編譯器將不會給你提供默認的構(gòu)造和拷貝構(gòu)造函
數(shù)

3、構(gòu)造函數(shù)的執(zhí)行順序

 執(zhí)行順序:先執(zhí)行被組合對象的構(gòu)造函數(shù),如果有多個,按定義順序執(zhí)行,而不是按初始化列表的順序執(zhí)行;
 析構(gòu)函數(shù)的調(diào)用順序相反;

 初始化列表用來給const屬性賦值;

代碼如下:

#include
using namespace std;

class A{
    public:
        A(int a){ 
            m = a;
        }   
    private:
        int m;
};
    //在構(gòu)造中調(diào)用構(gòu)造函數(shù)是一種危險的行為,里面是一個匿名對象;用完立即調(diào)用析構(gòu),
    //參數(shù)列表也可以在拷貝構(gòu)造函數(shù)上面使用;
class B{
    public:  //構(gòu)造函數(shù)的初始化列表:解決,在B類中,組合了A類對象,
            //根據(jù)構(gòu)造函數(shù)的規(guī)則,寫了A類的構(gòu)造函數(shù),必須要用;
        B(int q, int a, int b, int c) : a1(b), a2(c), c(0){
            x = q;
            y = a;
        }   
    //執(zhí)行順序:先執(zhí)行被組合對象的構(gòu)造函數(shù),如果有多個,按定義順序執(zhí)行,而不是按初始化列表的順序執(zhí)行;
    //析構(gòu)函數(shù)的調(diào)用順序相反;
    //構(gòu)造調(diào)用順序:a1、a2、b
    //初始化列表用來給const屬性賦值;
    private:
        int x;
        int y;
        A a1;
        A a2;
        const int c;  //常量c必須初始化(通過參數(shù)列表)
};

int main(void){
    B b(1, 2, 3, 4);
}

4、new和delete

 new能執(zhí)行類的構(gòu)造函數(shù),delete能行類的析構(gòu)函數(shù);

 malloc free new delete可以互換使用,只不過new先開辟空間-->調(diào)用構(gòu)造;delete--->先析構(gòu),在釋放空間;

5、static

 靜態(tài)成員不占這個類的字節(jié)的大小;------->不屬于這個實例的,相當于全局變量;

(1)、代碼如下:

#include
using namespace std;

class A{
    public:
        A(){}
        int getD(){
            return d;
        }
        void Add(){
            d++;
        }   
        static void getC(){ //靜態(tài)成員函數(shù);
            //靜態(tài)方法只能調(diào)用靜態(tài)的成員、函數(shù);
            cout<<"d:"<

(2)、運行結(jié)果:

友元函數(shù)<<的模板化

6、賦值語句(重載=運算符難點)
 i>、先把舊的內(nèi)存釋放掉;
 ii>、返回一個引用; 為了支持連等;
 iii>、根據(jù)大小分配內(nèi)存;

7、繼承中的字節(jié)大小

 子類繼承父類,在訪問上有所限制,但是在內(nèi)存空間上對屬性成員是全部的繼承了下來;靜態(tài)變量在全局區(qū),所以對靜態(tài)變量不計入字節(jié)大小的計算;

 class M{};//空的類,占一個標示,1字節(jié);

8、函數(shù)模板

  普通函數(shù)的調(diào)用:可以進行隱式的類型轉(zhuǎn)換
 函數(shù)模版的調(diào)用:將嚴格按照類型進行匹配,不會進行自動類型轉(zhuǎn)換;

9、友元函數(shù)的模板化

對友元函數(shù)實現(xiàn)<<運算符重載

(1)、代碼如下:

#include
using namespace std;


//結(jié)論:友元函數(shù)的類模版比較復雜;

template
class Complex; //類的前置聲明
template
ostream& operator<<(ostream &out, const Complex &c);//友元函數(shù)的前置聲明


template
class Complex{
    public:
        friend ostream& operator<<(ostream &out, const Complex &c); //對<<的后面加上
;進行友元函數(shù)的模版化;
        Complex(Type a, Type b); 
        Complex(const Complex &c){}
        Complex& operator=(const Complex &c){}
        ~Complex(){}
    public:
        void printComplex();
        Complex operator+(const Complex &c);
    private:
        Type a;
        Type b;
};

//成員函數(shù)實現(xiàn) + 
template
Complex::Complex(Type a, Type b){
    this->a = a;
    this->b = b;
}
template
void Complex::printComplex(){
    cout<<"a:"<
Complex Complex::operator+(const Complex &c){
    return Complex(a+c.a, b+c.b);
}

//友元函數(shù)實現(xiàn)<<運算符重載
template
ostream& operator<<(ostream &out, const Complex &c){
    out<<"("< c1(1, 2);
    Complex c2(3, 4);
    Complex c3 = c1 + c2;
    cout<

(2)、運行結(jié)果

友元函數(shù)<<的模板化

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


名稱欄目:友元函數(shù)&lt;&lt;的模板化-創(chuàng)新互聯(lián)
本文鏈接:http://weahome.cn/article/codiih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部