最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中對象的常引用總結

 更新時間:2013年10月15日 10:00:29   作者:  
以下是對C++中對象的常引用進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助

直接傳遞對象名

用對象名做函數(shù)參數(shù)時,在函數(shù)調用時將建立一個新的對象,它是形參對象的拷貝。

================下面給出一個直接傳遞對象名的例子程序1.1==================

復制代碼 代碼如下:

#include<iostream>
using namespace std;
class Time
{
 public:
  Time(int,int,int);//構造函數(shù)
  void Print();//輸出信息函數(shù)
  void reset(Time t);//重置函數(shù)
 private:
  int year;
  int month;
  int day;  
};
Time::Time(int y,int m,int d)
{
 year=y;
 month=m;
 day=d;
}
void Time::Print()
{
 cout<<year<<"/"<<month<<"/"<<day<<endl;
}
void Time::reset(Time t)
{
 t.year=0;
 t.month=0;
 t.day=0;
}
int main()
{
 Time t1(12,12,12);//定義一個對象并初始化
 t1.Print();//輸出t1的數(shù)據(jù)成員
 t1.reset(t1);//重置t1中的數(shù)據(jù)成員
 t1.Print();//輸出t1中的數(shù)據(jù)成員
 return 0;
}

運行結果:

從運行結果來看,reset函數(shù)并沒有起到作用。

實參把值傳遞給形參,二者分別占不同的存儲空間。無論形參是否修改都不會到實參的值。這種形式的虛實結合,要產(chǎn)生實參的拷貝,當對象的規(guī)模比較大的時候,則時間開銷和空間開銷都可能很大。

因此,這種方法雖然可行,但是并不提倡這種用法~

形參為對象的引用
如果形參為對象的引用名,實參為對象名,則在調用函數(shù)進行虛實結合時,并不是為形參另外開辟一個存儲空間(常稱為建立實參的一個拷貝),而是把實參變量的地址傳給形參(引用名),這樣引用名也指向實參變量。
對于程序1.1而言,我們只需要將reset函數(shù)的形參聲明為對象的引用即可。

復制代碼 代碼如下:

#include<iostream>
using namespace std;
class Time
{
 public:
  Time(int,int,int);//構造函數(shù)
  void Print();//輸出信息函數(shù)
  void reset(Time &t);//重置函數(shù) ============對這一行代碼進行了修改======================
 private:
  int year;
  int month;
  int day;  
};
Time::Time(int y,int m,int d)
{
 year=y;
 month=m;
 day=d;
}
void Time::Print()
{
 cout<<year<<"/"<<month<<"/"<<day<<endl;
}
void Time::reset(Time &t)//==============對這一行代碼進行了修改=================
{
 t.year=0;
 t.month=0;
 t.day=0;
}
int main()
{
 Time t1(12,12,12);
 t1.Print();
 t1.reset(t1);
 t1.Print();
 return 0;
}

運行結果:

形參為對象的常引用
如果我們在聲明函數(shù)的參數(shù)為對象引用的時候,還可以將它聲明為const(常引用)

復制代碼 代碼如下:

void reset(const Time &t);

則在函數(shù)中只能使用對象t中的數(shù)據(jù)成員和成員函數(shù),而不能修改其中的成員函數(shù),也就是不能修改其對應的實參中的數(shù)據(jù)成員的值。
復制代碼 代碼如下:

#include<iostream>
using namespace std;
class Time
{
 public:
  Time(int,int,int);//構造函數(shù)
  void Print();//輸出信息函數(shù)
  void reset(const Time &t);//重置函數(shù)
 private:
  int year;
  int month;
  int day;  
};
Time::Time(int y,int m,int d)
{
 year=y;
 month=m;
 day=d;
}
void Time::Print()
{
 cout<<year<<"/"<<month<<"/"<<day<<endl;
}
void Time::reset(const Time &t)
{       //既然聲明了t是對象的常引用,就不可以修改其數(shù)據(jù)成員的值,因此,下面的三行代碼是錯誤的。。
 t.year=0;
 t.month=0;
 t.day=0;
}
int main()
{
 Time t1(12,12,12);
 t1.Print();
 t1.reset(t1);
 t1.Print();
 return 0;
}

該程序會報錯,因為在函數(shù)reset中,企圖修改對象t中的數(shù)據(jù)成員的值

相關文章

  • C++ vector擴容解析noexcept應用場景

    C++ vector擴容解析noexcept應用場景

    這篇文章主要介紹了C++ vector擴容解析noexcept應用場景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • C語言如何輸出中文

    C語言如何輸出中文

    這篇文章主要介紹了C語言如何輸出中文問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • C++實現(xiàn)線程池的簡單方法示例

    C++實現(xiàn)線程池的簡單方法示例

    這篇文章主要給大家介紹了關于C++實現(xiàn)線程池的簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • C++實現(xiàn)簡單掃雷游戲

    C++實現(xiàn)簡單掃雷游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言實現(xiàn)簡易通訊錄(靜態(tài)版本)的代碼分享

    C語言實現(xiàn)簡易通訊錄(靜態(tài)版本)的代碼分享

    這篇文章主要為大家詳細介紹了如何錄音C語言實現(xiàn)一個簡易的通訊錄(靜態(tài)版本),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-10-10
  • C語言深入細致講解動態(tài)內存管理

    C語言深入細致講解動態(tài)內存管理

    動態(tài)內存是相對靜態(tài)內存而言的。所謂動態(tài)和靜態(tài)就是指內存的分配方式。動態(tài)內存是指在堆上分配的內存,而靜態(tài)內存是指在棧上分配的內存,本文帶你深入探究C語言中動態(tài)內存的管理
    2022-05-05
  • 使用C++實現(xiàn)Range序列生成器的示例代碼

    使用C++實現(xiàn)Range序列生成器的示例代碼

    在C++編程中,經(jīng)常需要迭代一系列數(shù)字或其他可迭代對象,本文將使用C++來實現(xiàn)一個簡單的Range封裝,文中的示例代碼講解詳細,感興趣的可以了解下
    2023-11-11
  • Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間

    Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間

    這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間,需要的朋友可以參考下
    2020-03-03
  • C語言實現(xiàn)簡單三子棋程序

    C語言實現(xiàn)簡單三子棋程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單三子棋程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C語言實現(xiàn)數(shù)獨程序的示例代碼

    C語言實現(xiàn)數(shù)獨程序的示例代碼

    數(shù)獨是源自瑞士的一種數(shù)學游戲。是一種運用紙、筆進行演算的邏輯游戲。本文將利用C語言實現(xiàn)數(shù)獨程序,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-03-03

最新評論

修文县| 普兰县| 新乡市| 新源县| 镇原县| 台东市| 台山市| 沅江市| 杭锦旗| 大姚县| 千阳县| 沙河市| 崇义县| 金华市| 兴海县| 开远市| 东乡族自治县| 九龙城区| 正安县| 炎陵县| 灵丘县| 凤凰县| 呈贡县| 四子王旗| 和硕县| 濮阳市| 西吉县| 元阳县| 临城县| 太保市| 枣阳市| 沅陵县| 镇安县| 聂荣县| 黑水县| 普宁市| 柳河县| 兰溪市| 四会市| 山东省| 图片|