国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++中的常對象與常對象成員詳解

C++中的常對象與常對象成員詳解

2021-01-07 14:35C++教程網 C/C++

常成員函數可以訪問常對象中的數據成員,但仍然不允許修改常對象中數據成員的值。有時在編程時有要求,一定要修改常對象成員中的某個數據成員的值(例如類中有一個用于計數的變量count,其值應當不能變化)

常對象

常對象必須在定義對象時就指定對象為常對象。

常對象中的數據成員為常變量且必須要有初始值,如

復制代碼 代碼如下:

Time const t1(12,34,36); //定義t1為常對象


這樣的話,在所有的場合中,對象t1中的所有數據成員的值都不能被修改。凡希望保證數據成員不被改變的對象,可以聲明為常對象。

定義常對象的一般形式為

類名    const    對象名(實參列表);

也可以把const寫在最左面

const    類名    對象名(實參列表);

二者等價

如果一個對象被聲明為常對象,則不能調用該對象的非const型的成員函數(除了由系統自動調用的隱式構造函數和析構函數)。

否則就會報錯
C++中的常對象與常對象成員詳解

這樣做是為了方式非const型的成員函數修改常對象中的數據成員的值,因為const型的成員函數是不可以修改對象中的數據成員的值的(這個后面還會說到)。

那么,怎樣才能引用常變量中的數據成員呢?很簡單,我們只需要將該成員函數聲明稱const型的成員函數(常成員函數)即可。

復制代碼 代碼如下:

void Print() const;


常成員函數可以訪問常對象中的數據成員,但仍然不允許修改常對象中數據成員的值。

有時在編程時有要求,一定要修改常對象成員中的某個數據成員的值(例如類中有一個用于計數的變量count,其值應當不能變化),

對該數據成員聲明為mutable,如

復制代碼 代碼如下:

mutable int count;//定義一個在常對象中可以被改變的數據成員


把count聲明為可變的數據成員,這樣就可以用聲明為const的成員函數來修改它的值。

=========================一個簡單的示例程序1.1====================================

復制代碼 代碼如下:

#include<iostream>
using namespace std;
class Student
{
<span style="white-space:pre"> </span>public:
<span style="white-space:pre">  </span>Student(int n,float s):num(n),score(s){}
<span style="white-space:pre">  </span>void change(int n,float s) const{num=n;score=s;}
<span style="white-space:pre">  </span>void display() const{cout<<num<<"\t"<<score<<endl;}
<span style="white-space:pre"> </span>private:
<span style="white-space:pre">  </span>mutable int num;
<span style="white-space:pre">  </span>mutable float score;
} ;
int main()
{
<span style="white-space:pre"> </span>Student const stud(101,78.5);
<span style="white-space:pre"> </span>stud.display();
<span style="white-space:pre"> </span>stud.change(101,80.5);
<span style="white-space:pre"> </span>stud.display();
<span style="white-space:pre"> </span>return 0;
};


C++中的常對象與常對象成員詳解

我們定義了常對象stud,然后分別調用了兩個常函數display()和change(),但是在change函數中要修改常對象中的num和score的值,所以我們將num和score定義為mutable.
常對象成員

1.常數據成員
其作用和用法與一般常變量相似,用關鍵字const來聲明常數據成員。常數據成員的值是不能改變的。
只能通過構造函數的參數初始化表對常數據成員進行初始化。

在類體中聲明常數據成員

復制代碼 代碼如下:

const int num;//聲明hour為常數據成員


在類外定義構造函數

復制代碼 代碼如下:

Student::Student(int n,float s):num(n),score(s){} //通過參數初始化表對常數據成員num和score初始化


在類體中聲明了某一個數據成員為常數據成員后,該類所有對象中的該數據成員的值都是不能改變的,但不同對象中該變量成員的值可以是不同的(分別在初始化時指定)。

2.常成員函數

如果將成員函數聲明為常成員函數,則只能引用本類中的數據成員,而不能修改它們。
注意:常對象只能引用常成員函數

常成員函數的定義形式:

復制代碼 代碼如下:

void Print() const;//注意const的位置在函數名和括號之后


const是函數類型的一部分,在聲明函數和定義函數都要有const關鍵字,在調用時不必加const。

常成員函數可以const數據成員,也可以引用非const數據成員,但是都不能修改他們;

不是常成員函數的函數可以調用const數據成員,但是不能修改它們,也可以調用非const數據成員,并且可以修改它們。

具體情況,如圖1:

C++中的常對象與常對象成員詳解

還要注意一下三點:
1.不要誤認為常對象中的成員函數都是常成員函數,常對象只保證其所有數據成員的值不被修改。

2.如果在常對象中的成員函數未加const聲明,則編譯系統會把它當最非const成員函數處理。

3.還要注意,常成員函數不能調用另外一個非cosnt成員函數。

延伸 · 閱讀

精彩推薦
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品在线一区二区 | 在线免费观看黄 | 国产精品亚洲第一区在线暖暖韩国 | 久草.com | 久久久天堂国产精品女人 | 国产精品一二三区 | 精品中文字幕一区 | 69中文字幕| 欧美国产在线观看 | 国产第一夜 | 99福利视频 | 五月天一区二区 | 一级色视频| 黄色成人影视 | 国产中文字幕在线观看 | 国产精品美女久久久久久不卡 | 亚洲 欧美 日韩在线 | 国产在线精品一区二区 | 午夜寂寞少妇aaa片毛片 | 一区二区免费在线观看 | 黄色一级片免费 | 可以免费看黄的网站 | 在线日韩欧美 | 日日精品 | 国产欧美精品 | 天堂av2020 | 国产精品日韩在线观看 | 天天亚洲综合 | 成人精品视频 | 久久精品91 | 亚洲精品91 | 国产欧美精品一区二区三区四区 | 干干干操操操 | 人人鲁人人莫一区二区三区 | 久久天天躁狠狠躁夜夜免费观看 | 久久精品国产一区二区电影 | 日日操操| 国产一区二区三区在线观看网站 | 亚洲伊人伊色伊影伊综合网 | 中文字幕成人 | 精品少妇一区二区三区日产乱码 |