在c++的類中有些成員變數初始化和一般資料型別的成員變數有所不同。以下測試編譯環境為:
➜ g++
-vusing built-in specs.
collect_gcc=g++
target: x86_64-linux
-gnu
gcc version 5.4
.020160609 (ubuntu 5.4.0-
6ubuntu1~16.04
.4)
測試**(g++編譯通過):
#include
using namespace std;
class test
//對於常量型成員變數和引用型成員變數,必須通過引數化列表的方式進行初始化。
~test(){}
int y; //普通變數成員
int &r; //引用成員變數
const
int d; //常量成員變數
static
int c; //靜態成員變數
static
const
int x = 2.1; //靜態常量整型成員變數
static
const
int xx; //靜態常量整型成員變數宣告
static
const
double z; //靜態常量非整型成員變數宣告
static
const
float zz = 6.6; //靜態常量非整型成員變數
};const
int test::xx = 4; //靜態常量整型成員變數定義
const
double test::z = 5.1; ////靜態常量非整型成員變數定義
int test::c = 2;
int main(void)
這些特殊型別的成員變數主要有:
1. 引用
2. 常量
3. 靜態變數
4. 靜態整型常量
5. 靜態非整型常量
靜態成員屬於類作用域,但不屬於類物件,它的生命週期和普通的靜態變數一樣,程式執行時進行分配記憶體和初始化,程式結束時則被釋放。所以不能在類的建構函式中進行初始化。
#include
using
namespace
std;
class test2
~test2(){}
static
void teststaticfun()
void testfun()
private:
static
int x;//靜態成員變數的引用性說明
int y;
};int test2::x = 10;//靜態成員變數的定義性說明
int main(void)
c++語言中(由於c++引入了類,在保持與c語言相容的同時,static關鍵字又有了兩種新用法):
C 類中的static成員的初始化
include using namespace std class test 對於常量型成員變數和引用型成員變數,必須通過引數化列表的方式進行初始化。test int y 普通變數成員 int r 引用成員變數 const int d 常量成員變數 static int c 靜態成員變數 stati...
c 類中的static成員
概念 宣告為static的類成員稱為類的靜態成員 用static修飾的成員變數為,靜態成員變數,用static修飾的成員函式為,靜態成員函式。靜態成員變數一定要在類外進行初始化。特性 1 靜態成員為所有類物件所共享,不屬於某個具體的例項 2 靜態成員必須在類外定義 3 類靜態成員可以用 類名 靜態成...
C 類的static成員
1,靜態 static 成員綜述 靜態成員 不是任意物件的組成部分,但由給定類的全體物件所共享的資料成員或函式成員。靜態成員是與類關聯的物件,而不是像普通的成員那樣與類的物件相關聯。靜態成員可以是資料成員,或成員函式。靜態成員遵循正常的共有 私有訪問規則。通過關鍵字static宣告靜態成員。2,靜態...