c 中關於私有靜態變數的問題

時間 2021-08-16 03:09:23

1樓:匿名使用者

#include "a.h"

void main()

a.h如下

class a;

~a()

;static void method();

private:

static int a;

static int b;

static int c;

}; //檔案a.cpp

void a::method()

2樓:

沒見過有寫#include "a.cpp"

應該寫成#include "a.h" 吧

把class a;

寫到a.h中

3樓:匿名使用者

c++的static關鍵字

c++的static有兩種用法:程序導向程式設計中的static和麵向物件程式設計中的static。前者應用於普通變數和函式,不涉及類;後者主要說明static在類中的作用。

一、程序導向設計中的static

1、靜態全域性變數

在全域性變數前,加上關鍵字static,該變數就被定義成為一個靜態全域性變數。我們先舉一個靜態全域性變數的例子,如下:

//example 1

#include

void fn();

static int n; //定義靜態全域性變數

void main()

void fn()

void fn()//定義靜態函式

;int myclass::sum=0;//定義並初始化靜態資料成員

myclass::myclass(int a,int b,int c)

void myclass::getsum()

;int myclass::sum=0;//定義並初始化靜態資料成員

myclass::myclass(int a,int b,int c)

void myclass::getsum() //靜態成員函式的實現

{// cout<)為一個類的物件或指向類物件的指標呼叫靜態成員函式,也可以直接使用如下格式:

<類名>::<靜態成員函式名>(<參數列>)

呼叫類的靜態成員函式。

問:c++能不能在類中定義一個私有的靜態常量陣列

4樓:煙丹煙

能!例如:

#include

class a

但是需要注意一下,上面的靜態常量變數,除了int型以及列舉型可以由一個int常量表示式在類定義中初始化以外,其餘都要在實現檔案中顯式初始化,並且在初始化時,前面必須有const關鍵字申明。

因此,如果你定義的是靜態常量陣列,則必須如下:

在.h檔案中

#include

class a

在.cpp檔案中

const string a::array[3] = ;

這樣做是因為,雖然const常量必須在定義的時候賦值,但是它的前面又有static關鍵字,因此,也就帶有了靜態的性質,即必須在類定義外顯式定義(當然除了上面說的int型和列舉)

希望能幫到你!

靜態變數是什麼意思,java中靜態變數有什麼用途?

舉個例子,就是有兩個班級,a班級門上掛著班級裡學生的簡歷,b班級沒有,當你要上兩個班級裡找學生的時候,a班級你在門外就可以知道找誰了,b班級就必須上門裡邊找。學生簡歷就屬於 靜態變數,他可以通過類 班級 直接呼叫。在函式中,只有定義時才初始化,每次函式呼叫時保留有上次的值。使用上基本上和全域性變數差...

在C語言中關於全域性變數 靜態變數 的用法1 全域性變數與靜態變數的區別2 用static定義變數 常量以及定

1.1 某個檔案中的全域性變數是任何其他檔案都可見的,只要extern宣告一下,任何檔案均可使用 2 若在定義變數前加static,說明該變數只有該檔案內部可以使用,其他檔案無法使用。即static限定了變數的可見性,但生命週期仍是全域性的 2.static char a static const ...

簡單C 語言問題,求教,關於私有繼承

物理公司的 私有基類的公用成員和保護成員在私有派生類中 的訪問屬性相當於派生類中的私有成員,即派生類的成員函式能訪問它們,而在派生類外不能訪問它們。私有基類的私有成員在派生類中稱為不可訪問的成員,只有 基類的成員函式可以引用它們,一個基類成員在基類中的訪問屬性和在私有派生類中的訪問屬性可能是不相同的...