C 類中的static成員的初始化和特點

2021-07-29 06:04:22 字數 1591 閱讀 2080

在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,靜態...