舉個例子,假設有如下程式碼:
class CA
{
public:
int a;
CA(){a = 7;}
};
int main()
CA ca;
int b = ca.a;
return 0;
}
CA是一個類,ca是CA的一個例項,因此ca是CA的物件。
當你在main()函式中執行int b = ca.a;這句程式碼時,是main()函式在訪問物件ca的成員變數a,而不是ca自己在訪問它自己的成員變數,這就是外部訪問。那麼,什麼是內部訪問呢?比如CA的建構函式CA()本身是物件ca的成員函式,在這個建構函式的內部也在訪問a,這就是ca自己在訪問自己的成員變數,這就是內部訪問。
簡單點說就是:
如果是在物件ca的外部,以ca.a的形式來訪問ca的成員變數a,這就是外部訪問;如果是ca自己的成員函式(包括但不限於它的建構函式)在訪問ca自己的成員變數,這就是自己訪問自己,是內部訪問。
舉個例子,假設有如下程式碼:
class CA
{
public:
int a;
public:
CA(){a = 7;}
};
int main()
{
CA ca;
int b = ca.a;
return 0;
}
CA是一個類,ca是CA的一個例項,因此ca是CA的物件。
當你在main()函式中執行int b = ca.a;這句程式碼時,是main()函式在訪問物件ca的成員變數a,而不是ca自己在訪問它自己的成員變數,這就是外部訪問。那麼,什麼是內部訪問呢?比如CA的建構函式CA()本身是物件ca的成員函式,在這個建構函式的內部也在訪問a,這就是ca自己在訪問自己的成員變數,這就是內部訪問。
簡單點說就是:
如果是在物件ca的外部,以ca.a的形式來訪問ca的成員變數a,這就是外部訪問;如果是ca自己的成員函式(包括但不限於它的建構函式)在訪問ca自己的成員變數,這就是自己訪問自己,是內部訪問。