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++面向對象法式設計有所贊助。