C 中的類作用域

2021-08-19 18:09:33 字數 644 閱讀 4117

在類中定義的名稱(如類資料成員名和類成員函式名)的作用域都為整個類,作用域為整個類的名稱只在該類中是已知的,在類外是不可知的。因此,可以在不同類中使用相同的類成員名而不會引起衝突。

作用域為類的常量

class bakery

;

通過上述描述建立乙個由所有物件共享的常量的方式有誤!因為類宣告只是描述了物件的形式,並沒有建立物件。因此,在建立物件前,將沒有用於儲存值的空間(實際上,c++11提供了成員初始化)。有兩種方式可以實現這個目標。

第一種是在類中宣告乙個列舉。在類宣告中宣告的列舉的作用域為整個類,因此可以用列舉為整型常量提供作用域為整個類的符號名稱。如

class bakery

; double costs[months];

...};

注意,用這種方式宣告列舉並不會建立類資料成員。即所有物件中都不包含列舉。

第二種在類中定義常量的方式,使用關鍵字static。下面這將建立乙個名為months的常量,該常量與其他靜態變數儲存在一起,而不是儲存在物件中。因此,只有乙個months常量,被所有bakery物件共享。

class bakery

;

c 類作用域

1.在類中定義的名稱,其作用域是整個類,改名稱只在此類中是已知的,類外是不可知的。直接成員運算子 間接成員運算子 作用域解析運算子 2.定義乙個作用域為類的常量 1 直接定義 錯誤,不可行 class base 因為類的宣告只是描述了物件,並沒有建立物件。因此,在建立物件前,將沒有用於儲存值得空間 ...

繼承中類的作用域

派生類的作用域巢狀在其基類的作用域之內,如果乙個名字無法在派生類的作用域內無法正確解析,則編譯器將繼續在外層的基類作用域中尋找該名字的定義。派生類中能重定義在其直接基類或間接基類中的名字,此時定義在內層作用域 即派生類 的名字將隱藏定義在外層作用域 即基類 的名字。struct base prote...

類的作用域

更多c 類的基本概念 每個類都會定義它自己的作用域。在類的作用域外,普通的資料和函式成員只能由物件 引用或者指標使用成員訪問運算子來訪問。對於類型別成員則使用作用域運算子訪問。不論哪種情況,跟在運算子之後的名字都必須是對應類的成員。作用域和定義在類外部的成員 乙個類就是乙個作用域很好地解釋為什麼當我...