最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
類的默認成員函數-創(chuàng)新互聯(lián)

類的六個默認成員函數:構造函數、拷貝構造函數、析構函數、賦值操作符重載、取地址的操作符重載、const修飾的取地址操作符重載。

成都創(chuàng)新互聯(lián)公司服務項目包括泗陽網站建設、泗陽網站制作、泗陽網頁制作以及泗陽網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,泗陽網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到泗陽省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

1.【構造函數】

成員變量為私有的,要對它們進行初始化,必須用一個公有成員函數來進行。同時這個函數應該有且僅在定義對象時自動執(zhí)行一次,這時

調用的函數稱為構造函數(constructor) 。

構造函數是特殊的成員函數,其特征如下:

1. 函數名與類名相同。

2. 無返回值。

3. 對象構造(對象實例化)時系統(tǒng)自動調用對應的構造函數。

4. 構造函數可以重載。

5. 構造函數可以在類中定義,也可以在類外定義。

6. 如果類定義中沒有給出構造函數,則C++編譯器自動產生一個缺省的構造函數,但只要我們定義了一個構造函數,系統(tǒng)就不會自動

生成缺省的構造函數。

7. 無參的構造函數和全缺省值的構造函數都認為是缺省構造函數,并且缺省的構造函數只能有一個。

class Date
{
  public:
    // 1.無參構造函數
    Date ()
    {}
    // 2.帶參構造函數
    Date (int year, int month , int day )
    {
        _year = year ;
        _month = month ;
        _day = day ;
    }
 private:
        int _year ;
        int _month ;
        int _day ;
};
    void TestDate1 ()
    {
    Date d1 ; // 調用無參構造函數
    Date d2 (2015, 1, 1); // 調用帶參的構造函數
    }

2.【拷貝構造函數】

創(chuàng)建對象時使用同類對象來進行初始化,這時所用的構造函數稱為拷貝構造函數(Copy Constructor),拷貝構造函數是特殊的構造函

數。

特征:

1. 拷貝構造函數其實是一個構造函數的重載。

2. 拷貝構造函數的參數必須使用引用傳參,使用傳值方式會引發(fā)無窮遞歸調用。

3. 若未顯示定義,系統(tǒng)會默認缺省的拷貝構造函數。缺省的拷貝構造函數會,依次拷貝類成員進行初始化。

class Date
{
public :
    Date()
    {}
// 拷貝構造函數
    Date (const Date& d)
    {
        _year = d ._year;
        _month = d ._month;
        _day = d ._day;
    }
private :
    int _year ;
    int _month ;
    int _day ;
};
void TestDate1 ()
{
    Date d1
    Date d2 (d1); // 調用拷貝構造函數
 }

3.【析構函數】

當一個對象的生命周期結束時,C++編譯系統(tǒng)會自動調用一個成員函數,這個特殊的成員函數即析構函數(destructor)

構造函數是特殊的成員函數,其特征如下:

1. 析構函數在類名加上字符~。

2. 析構函數無參數無返回值。

3. 一個類有且只有一個析構函數。若未顯示定義,系統(tǒng)會自動生成缺省的析構函數。

4. 對象生命周期結束時,C++編譯系統(tǒng)系統(tǒng)自動調用析構函數。

5. 注意析構函數體內并不是刪除對象,而是做一些清理工作。

class Date
{
public :
// 析構函數
    ~Date()
    {}
private :
    int _year ;
    int _month ;
    int _day ;
};

4.【賦值運算符重載】

1、拷貝構造函數是創(chuàng)建的對象,使用一個已有對象來初始化這個準備創(chuàng)建的對象。

2、賦值運算符的重載是對一個已存在的對象進行拷貝賦值。

class Date
{
public :
    Date()
    {}
    // 拷貝構造函數
    Date (const Date& d)
        : _year(d._year)
        , _month(d._month)
        , _day(d._day)
       {}
// 賦值操作符的重載
Date& operator = (const Date& d)
{
    if (this != &d)
    {
    this->_year = d. _year;
    this->_month = d. _month;
    this->_day = d. _day;
}
    return *this ;
}
private:
    int _year ;
    int _month ;
    int _day ;
};
void Test ()
{
    Date d1 ;
    Date d2 = d1; // 調用拷貝構造函數
    Date d3 ;
    d3 = d1 ; // 調用賦值運算符的重載
 }

操作符重載實現的加減乘除


	Date operator= (const Date &g)
	{
		if (this != &g)
		{
			_year=g._year;
			_month=g._month;
			_day=g._day;
		}
		return *this;
	}
	Date operator+ (const Date g)
	{
		Date d;
		d._year = _year + g._year;
		d._month = _month + g._month;
		d._day = _day + g._day;
		return d;
	}
	Date operator+= (const Date g)
	{
		_year += g._year;
		_month += g._month;
		_day += g._day;
		return *this;
	}
	Date operator-(const Date g)
	{
		Date d;
		d._year=_year-g._year;
		d._month=_month-g._month;
		d._day=_day-g._day;
		return d;
	}

在C++中比較常用的就是以上四個默認成員函數,我們在熟悉了以上四個默認函數的特點和用法之后,我們可以練習實現一個復數類。


class Complex
{
public:
	Complex()
	{}//無參構造函數
	Complex(int real,int empty)
	{
		_real=real;
		_empty=empty;
	}//帶參構造函數
	Complex (const Complex& g)
	{
		_real=g._real;
		_empty=g._empty;
	}//拷貝構造函數
	void Display()
	{
		cout<<"real:"<< _real<<"empty:"<< _empty<

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


分享文章:類的默認成員函數-創(chuàng)新互聯(lián)
文章起源:http://fisionsoft.com.cn/article/dcepoi.html