類的成員函式儲存在**段中,類的成員變數儲存在每個類物件中,所有類物件共享乙份成員函式。
成員函式是如何區別那個物件在呼叫它?
當使用類物件呼叫成員函式時,編譯器會把物件的位址隱式傳遞給成員函式,每個類成員函式都隱藏著乙個引數this指標 在成員函式中之所以能直接訪問成員變數就是隱藏著this指標,當在成員函式中呼叫其它成員函式時,也會把this指標傳遞過去。
函式的引數名和成員變數一致時,可以用this指標區分
如果成員函式的返回值是當前的物件的位址或引用,就可以用this指標實現
可以將this指標作為其他類成員函式的引數,把乙個類物件傳遞給另乙個其他型別的物件,可以實現物件之間的互動
#include
using namespace std;
class student
student
(string name,
char ***,
int id)
void
show
(void
) student&
func
(void
) student*
func
(void)}
;int
main
(int argc,
const
char
* ar**)
C 中常物件 常成員函式 常成員變數
用const修飾的類物件叫做常物件,用const修飾的成員函式叫常成員函式,用const修飾的成員變數叫常成員變數,常物件 型如 const 類名 物件名 類名 const 物件名 說明 1.常物件內的成員變數值不可修改,所以一定要在定義物件時初始化。2.常物件只可以呼叫常成員函式,但是非常物件可以...
C 常成員函式 常資料成員 常物件
常成員函式在宣告和實現時都要帶const關鍵字 常成員函式不能修改物件的資料成員,也不能訪問類中沒有用const宣告的非常成員函式。在任何函式中都不能對常資料成員賦值。對常資料成員初始化,只能通過建構函式的初始化列表。常物件的資料成員在它的生存期內不會被改變,因此定義常物件時必須對其進行初始化。這裡...
在單獨執行緒中執行物件成員函式
問題的提出 實際上所有執行緒都是用來處理c函式的,而不是c 類成員函式。標準庫中提供乙個api函式,這個函式以 函式指標作為執行緒的執行 並在單獨的執行緒中呼叫 函式。問題是在這樣的執行緒庫中不能建立執行物件成員函式的執行緒 只能使用普通的函式。因此,下列 是失敗的 啟動執行緒庫函式的執行緒 int...