程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++類中的static和const用法實例教程

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

編輯:關於C++

C++類中的static和const用法實例教程。本站提示廣大學習愛好者:(C++類中的static和const用法實例教程)文章只能為提供參考,不一定能成為您想要的結果。以下是C++類中的static和const用法實例教程正文


static和const是C++法式設計中異常主要的概念,本文實例羅列了C++類中的static和const的規矩和用法。供年夜家參考自創。詳細解釋以下:

起首以代碼用來舉例解釋。示例代碼以下:

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

接上去停止具體解釋。

1、static症結字

1.static 數據成員

static數據成員是屬於類的,不是屬於任何詳細的對象的,不占用對象的內存空間。可以用 A::n 的情勢拜訪,也能夠經由過程對象拜訪(固然不屬於詳細對象,然則一切對象共有)。

static數據成員的初始化必需在類外初始化,采取 int A::n = 5;如許的情勢,記得指明類型和所屬的類,不消加症結字static。

2.static成員函數

static成員函數只能拜訪static數據成員或許static成員函數,不克不及拜訪非static數據成員和非static成員函數。

2、const症結字

1.const數據成員

必需在結構函數初始化列表中停止初始化。緣由可以懂得有以下兩點。

(1)類的成員不克不及在聲明初始化,好比在類體內 int c = 3;是不可的。

(2)不克不及在成員函數中賦值,由於const不克不及被轉變。

2.const成員函數

const成員函數可以拜訪一切數據成員,但不克不及轉變對象任何一個數據成員的值,然則可以轉變static成員的值(static成員屬於類,不屬於詳細對象)

3.const對象

const A a;

const對象只能挪用const成員函數,只能轉變static成員。

3、static const症結字

起首要記住,static const 表現既是static也表現const,都具有兩者的特點。

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

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

const int A::p = 30;

願望本文所述對年夜家的C++面向對象法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved