激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務器之家 - 編程語言 - C/C++ - C++類中的static和const用法實例教程

C++類中的static和const用法實例教程

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

這篇文章主要介紹了C++類中的static和const用法,是C++面向對象程序設計中非常重要的概念,需要的朋友可以參考下

staticconstC++程序設計中非常重要的概念,本文實例列舉了C++類中的static和const的規則和用法。供大家參考借鑒。具體說明如下:

首先以代碼用來舉例說明。示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class A
{
public:
  A():m(10)         //const成員必須在構造函數的初始化構造列表中初始化
  {
    q = 40;
  }
 
  void fun1()const
  {
    m++;         //錯誤。const成員是常量,不能改變其值。
    n++;         //正確。static變量n屬于類,但是每個對象的函數都可以訪問和改變它。
    q++;         //錯誤。const成員函數不能改變數據成員的值。
  }
  static void fun2()
  {
    m++;         //錯誤。const成員是常量,不能改變其值。
    n++;         //正確。static成員函數可以訪問和改變static變量的值。
    q++;         //錯誤。static成員函數不能訪問和改變非static數據成員的值。
  }
 
  const int m;
  static int n;
  static const int p;
  int q;
};
 
int A::n = 5;        //static 成員必須在類外初始化,此時不用加關鍵字static,但是要指定類作用域 A::
const int A::p = 30;     //static const 成員跟static成員一樣在類外初始化(而不是在構造函數初始化列表中),記得加上關鍵字const

接下來進行詳細說明。

一、static關鍵字

1.static 數據成員

static數據成員是屬于類的,不是屬于任何具體的對象的,不占用對象的內存空間。可以用 A::n 的形式訪問,也可以通過對象訪問(雖然不屬于具體對象,但是所有對象共有)。

static數據成員的初始化必須在類外初始化,采用 int A::n = 5;這樣的形式,記得指明類型和所屬的類,不用加關鍵字static。

2.static成員函數

static成員函數只能訪問static數據成員或者static成員函數,不能訪問非static數據成員和非static成員函數。

二、const關鍵字

1.const數據成員

必須在構造函數初始化列表中進行初始化。原因可以理解有以下兩點。

(1)類的成員不能在聲明初始化,比如在類體內 int c = 3;是不行的。

(2)不能在成員函數中賦值,因為const不能被改變。

2.const成員函數

const成員函數可以訪問所有數據成員,但不能改變對象任何一個數據成員的值,但是可以改變static成員的值(static成員屬于類,不屬于具體對象)

3.const對象

?
1
const A a;

const對象只能調用const成員函數,只能改變static成員。

三、static const關鍵字

首先要記住,static const 表示既是static也表示const,都具有二者的特征。

?
1
static const int p;//和const static int p;是一樣的。

初始化跟static成員一樣,在類外初始化,但是要加上const。

?
1
const int A::p = 30;

希望本文所述對大家的C++面向對象程序設計有所幫助。

延伸 · 閱讀

精彩推薦
  • C/C++c++ 單線程實現同時監聽多個端口

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

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

    源之緣11542021-10-27
  • C/C++深入理解goto語句的替代實現方式分析

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

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

    C語言教程網7342020-12-03
  • C/C++C/C++經典實例之模擬計算器示例代碼

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

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

    jia150610152021-06-07
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

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

    xiaocaidayong8482021-08-20
  • C/C++C語言中炫酷的文件操作實例詳解

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

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

    針眼_6702022-01-24
  • C/C++學習C++編程的必備軟件

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

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

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

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

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

    spring-go5642021-07-02
  • C/C++C++之重載 重定義與重寫用法詳解

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

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

    青山的青6062022-01-04
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
主站蜘蛛池模板: 成人免费入口 | 国产亚洲精品成人a | 精品国产观看 | 成人免费av在线 | 黄色一级片毛片 | 性看小视频| 依人网站 | 老子午夜影院 | 国产成人在线视频 | 久久亚洲网 | 精品无吗乱吗av国产爱色 | 国产超碰人人做人人爱ⅴa 色天天综合网 | 久色乳综合思思在线视频 | 亚洲xxx在线观看 | 亚洲婷婷日日综合婷婷噜噜噜 | 中国av一级片 | 九九黄色| 在线播放的av网站 | 久久久久久久一区 | 欧美三日本三级少妇三级99观看视频 | 日本综合久久 | 成人午夜免费av | 色黄网站在线观看 | 久久激情免费视频 | 国产精品爱久久久久久久 | 久久精品中文字幕一区二区 | 在线看小早川怜子av | 黄色大片免费网站 | 亚洲日韩中文字幕一区 | 欧美三级日本三级少妇99 | 国产午夜免费不卡精品理论片 | 草久在线 | 免费观看亚洲视频 | 国产免费一区二区三区 | 成人毛片免费网站 | av免播放| 在线播放亚洲精品 | 国产一级一区二区三区 | 中文字幕在线永久 | 欧美一级免费看 | 久在线播放 |