一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

C++類中的static和const用法實(shí)例教程

2021-01-29 14:35C++教程網(wǎng) C/C++

這篇文章主要介紹了C++類中的static和const用法,是C++面向?qū)ο蟪绦蛟O(shè)計中非常重要的概念,需要的朋友可以參考下

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

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

?
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成員必須在構(gòu)造函數(shù)的初始化構(gòu)造列表中初始化
  {
    q = 40;
  }
 
  void fun1()const
  {
    m++;         //錯誤。const成員是常量,不能改變其值。
    n++;         //正確。static變量n屬于類,但是每個對象的函數(shù)都可以訪問和改變它。
    q++;         //錯誤。const成員函數(shù)不能改變數(shù)據(jù)成員的值。
  }
  static void fun2()
  {
    m++;         //錯誤。const成員是常量,不能改變其值。
    n++;         //正確。static成員函數(shù)可以訪問和改變static變量的值。
    q++;         //錯誤。static成員函數(shù)不能訪問和改變非static數(shù)據(jù)成員的值。
  }
 
  const int m;
  static int n;
  static const int p;
  int q;
};
 
int A::n = 5;        //static 成員必須在類外初始化,此時不用加關(guān)鍵字static,但是要指定類作用域 A::
const int A::p = 30;     //static const 成員跟static成員一樣在類外初始化(而不是在構(gòu)造函數(shù)初始化列表中),記得加上關(guān)鍵字const

接下來進(jìn)行詳細(xì)說明。

一、static關(guān)鍵字

1.static 數(shù)據(jù)成員

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

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

2.static成員函數(shù)

static成員函數(shù)只能訪問static數(shù)據(jù)成員或者static成員函數(shù),不能訪問非static數(shù)據(jù)成員和非static成員函數(shù)。

二、const關(guān)鍵字

1.const數(shù)據(jù)成員

必須在構(gòu)造函數(shù)初始化列表中進(jìn)行初始化。原因可以理解有以下兩點(diǎn)。

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

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

2.const成員函數(shù)

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

3.const對象

?
1
const A a;

const對象只能調(diào)用const成員函數(shù),只能改變static成員。

三、static const關(guān)鍵字

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

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

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

?
1
const int A::p = 30;

希望本文所述對大家的C++面向?qū)ο蟪绦蛟O(shè)計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久综合视频网站 | 狠狠色综合久久婷婷色天使 | 日本人作爰啪啪全过程 | 国产夜趣福利第一视频 | 日本孕妇大胆孕交 | 王的视频vk | www.男人的天堂.com | 久久人妻无码毛片A片麻豆 久久热这里只有 精品 | 五月天综合久久 | 亚洲欧美自偷自拍另类小说 | 日本动漫xxxxxx| 日本高清视频网址 | 日本妇人成熟免费不卡片 | 色综合久久天天综合观看 | pregnanthd产子 | 欧美精品黑人巨大在线播放 | 欧美日韩中文字幕久久伊人 | 日韩欧美一区黑人vs日本人 | 国产成人精品本亚洲 | 91麻豆精品国产自产在线观看 | 亚洲福利天堂 | 日韩欧美一区黑人vs日本人 | 91精品国产品国语在线不卡 | 2021日产国产麻豆 | 99亚洲| 无码人妻99久久密AV | 精品国产欧美精品v | 嫩模被黑人粗大挺进 | 久久成人国产精品一区二区 | 冰山美人调教耻辱h | 好爽轻点太大了太深了 | 成 人 亚洲 综合天堂 | 免费超级乱淫视频播放性 | 青春草视频在线免费观看 | 日韩精品中文字幕视频一区 | cao逼视频| 四虎黄色影视 | 国产成人亚洲精品91专区手机 | 久久艹影院 | 青青草原社区 | 国产麻豆传媒在线观看 |