欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

c++中如何使用構(gòu)造函數(shù)

本篇文章為大家展示了c++中如何使用構(gòu)造函數(shù),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

目前創(chuàng)新互聯(lián)公司已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、遼陽網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

一、構(gòu)造函數(shù):

1、什么是構(gòu)造函數(shù)?

關(guān)于這個構(gòu)造函數(shù),簡單理解就是在一個類中,有一個函數(shù),它的函數(shù)名稱和類名同名,而且這個構(gòu)造函數(shù)沒有返回值類型的說法(  Test()這個函數(shù)就是構(gòu)造函數(shù)了。):

#include <stdio.h>

class Test:
{
  public:
       Test()
       {
         printf("Test()\n");
       }
}
 

2、構(gòu)造函數(shù)調(diào)用:

(1)一般情況下,構(gòu)造函數(shù)在定義時自動被調(diào)用(主要作用就是自動去初始化類中的屬性,這個屬性通俗一點(diǎn)來說,就是我們所說的變量。而且這里的自動的意思,就是說當(dāng)你創(chuàng)建了一個對象后,它就會自動調(diào)用構(gòu)造函數(shù),不用你再去main函數(shù)里面寫構(gòu)造函數(shù)了。):

#include <stdio.h>

class Test
{
public:
   Test()
   {
       printf("Test()\n");
   }
   
};

int main()
{
   Test t;      // 調(diào)用 Test()
   return 0;
}

 

演示結(jié)果如下:

root@txp-virtual-machine:/home/txp/c++# ./a.out
Test()
 

(2)一些特殊情況下,需要手工來調(diào)用構(gòu)造函數(shù)(這個在下面帶參數(shù)的構(gòu)造函數(shù)里面會有一個案例分析)

二、帶參數(shù)的構(gòu)造函數(shù):

(1)構(gòu)造函數(shù)可以根據(jù)需要定義參數(shù)。

class Test
{
   public:
         Test(int v)
         {
         
         }
};

 

(2)一個類中可以存在多個重載的構(gòu)造函數(shù)(什么重載函數(shù),簡單來說,可以同函數(shù)名,但是它的傳參類型或者返回類型不同就是重載函數(shù)了。)下面來看一個具體帶參構(gòu)造函數(shù)案例:

#include <stdio.h>

class Test
{
private:
   int m_value;
public:
   Test()
   {
       printf("Test()\n");
       
       m_value = 0;
   }
   Test(int v)
   {
       printf("Test(int v), v = %d\n", v);
       
       m_value = v;
   }
   int getValue()
   {
       return m_value;
   }
};

int main()
{
   Test ta[3] = {Test(), Test(1), Test(2)};
   
   for(int i=0; i<3; i++)
   {
       printf("ta[%d].getValue() = %d\n", i , ta[i].getValue());
   }
   
   Test t = Test(100);
   
   printf("t.getValue() = %d\n", t.getValue());
   
   return 0;
}

 

演示結(jié)果如下:

root@txp-virtual-machine:/home/txp/c++# ./a.out
Test()
Test(int v), v = 1
Test(int v), v = 2
ta[0].getValue() = 0
ta[1].getValue() = 1
ta[2].getValue() = 2
Test(int v), v = 100
t.getValue() = 100

 

三、實(shí)戰(zhàn)案例:

需求:開發(fā)一個數(shù)組類解決原生數(shù)組的安全性問題:

——提供函數(shù)獲取數(shù)組長度

——提供函數(shù)獲取數(shù)組元素

——提供函數(shù)設(shè)置數(shù)組元素
 

接下來我們先來寫頭文件IntArray.h,數(shù)組類就包含在里面:

#ifndef _INTARRAY_H_
#define _INTARRAY_H_

class IntArray
{
  private:
        int m_length;
        int* m_pointer;
  public:
        IntArray(int len);
        int length();
        bool get(int index, int& value);
        bool set(int index ,int value);
        void free();
};

#endif

 

然后接下來寫IntArray.cpp,也就是類的方法具體實(shí)現(xiàn)了:

#include "IntArray.h"

IntArray::IntArray(int len)
{
   m_pointer = new int[len];
   
   for(int i=0; i<len; i++)
   {
       m_pointer[i] = 0;
   }
   
   m_length = len;
}

int IntArray::length()
{
   return m_length;
}

bool IntArray::get(int index, int& value)
{
   bool ret = (0 <= index) && (index < length());
   
   if( ret )
   {
       value = m_pointer[index];
   }
   
   return ret;
}

bool IntArray::set(int index, int value)
{
   bool ret = (0 <= index) && (index < length());
   
   if( ret )
   {
       m_pointer[index] = value;
   }
   
   return ret;
}

void IntArray::free()
{
   delete[]m_pointer;
}
 

最后就在main中來創(chuàng)建對象,來實(shí)現(xiàn)所需功能:

#include <stdio.h>
#include "IntArray.h"

int main()
{
   IntArray a(5);
   
   for(int i=0; i<a.length(); i++)
   {
       a.set(i, i + 1);
   }
   
   for(int i=0; i<a.length(); i++)
   {
       int value = 0;
       
       if( a.get(i, value) )
       {
           printf("a[%d] = %d\n", i, value);
       }
   }
   
   a.free();
   
   return 0;
}

 

最終演示結(jié)果:

root@txp-virtual-machine:/home/txp/c++# ./a.out
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5

 

小結(jié):

——構(gòu)造函數(shù)可以根據(jù)需要定義參數(shù)

——構(gòu)造函數(shù)之間可以存在重載關(guān)系

——構(gòu)造函數(shù)遵循C++中重載函數(shù)的規(guī)則

——對象定義時會觸發(fā)構(gòu)造函數(shù)的調(diào)用

——在一些情況下可以手動調(diào)用構(gòu)造函數(shù)

 

上述內(nèi)容就是c++中如何使用構(gòu)造函數(shù),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:c++中如何使用構(gòu)造函數(shù)
標(biāo)題網(wǎng)址:http://aaarwkj.com/article22/peihcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、Google、用戶體驗(yàn)標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲一区二区三区三洲| 久久一二三四区中文字幕| av一区二区日韩精品久| 日本人妻久久中文字幕精品| 国产成人免费自拍一区| 亚洲精品一区二区三区小| 欧美精品高清在线视频| 日韩在线视频免费不卡一区| 国产精品一区二区在线观看| 久久精品资源综合网| 国产精精精精品欧美日韩| 日本欧美精品一区二区三区| 亚洲精品成人午夜av| 欧美日韩久久亚洲精品| 免费在线一区二区av| 黄色成人av在线网站| 国产精品一久久香蕉产线看| 日韩欧美国产成人在线观看| 国产成人久久精品二区三区| 日本一区二区高清在线观看| 日本大片一区二区免费看| 日韩在线观看视频有码| 亚洲一区二区三区精品福利| 久久久久久精品国产av| 91av国产一区二区| 久久热福利视频就在这里| 精品伊人久久大香线蕉| 日本一区二区电影在线看| 亚洲青青草原自拍偷拍| 日韩人妻有码中文字幕| 亚洲中文字幕少妇视频| 97精品在线视频免费| 嫩草网站国产精品一区二| 日本在线看片一区二区| 内射小美女阴户毛片在线| 欧美日韩一区二区激情在线| 熟妞人妻精品一区二区视频| 一级黄片国产精品久久| 国产麻豆精品二区视频| 精品日韩av一区二区三区| 青青草最新网址在线观看视频 |