類定義的內聯函式分為以下3種:
1.隱式內聯
class person
void printname()//printname 定義在類裡面是隱式內聯函式
private:
string name;
};
2.顯式內聯
分為在2種情況:
1)在類裡面顯式宣告定義:
class person
inline void printname()//成員被函式前加了inline是顯式內聯函式
private:
string name;
};
2)在類裡面顯示宣告,在類外面定義
class person
inline void printname();//成員被函式前加了inline是顯式內聯函式
//在類裡面顯式宣告
private:
string name;
};void person::printname()
3.「追加」內聯
表示在類裡面沒有顯式宣告,在類外顯示定義了內聯。
class person
void printname();
//在類裡面沒有顯式宣告
private:
string name;
};inline void person::printname()//成員被函式前加了inline是顯式內聯函式
4.第四種常見的成員函式不是內聯函式
定義不再類裡面,且宣告和定義都沒有inline
class person
void printname();
//在類裡面沒有顯式宣告
private:
string name;
};void person::printname()//不是內聯函式
總結,第四種一定不是內聯函式,前三種可能是內聯函式,具體是不是還要由編譯器判定。 類裡面的成員變數如果是public,為什麼破壞封裝
如果是public屬性,那麼類外任何物件,都可以隨意改變,物件建立出來,在任何地方,任何時候都是能改變的 舉個簡單的例子 如果你乙個遊戲類 你建立乙個角色,屬性如果是public的,別人可以通過記憶體獲取你物件,通過物件去修改基本屬性,這樣不是就毫無安全感,如果是函式介面,函式呼叫時棧記憶體,呼叫完...
C 類的建立和物件,成員函式與內聯函式
c 中的類是構建塊,可導致物件導向的程式設計。它是使用者定義的資料型別,擁有自己的資料成員和函式,可以通過類的例項來訪問和使用它們。c 類就像物件的藍圖。例如 汽車類別,有許多不同品牌的汽車,但它們都有一些共同的屬性,例如4個車輪 速度限制 里程範圍等。因此,這裡汽車是類別,車輪 速度限制和里程範圍...
C 類的內聯成員函式應放在哪
今天覆習c primer的時候,看到了關於c 類的內聯成員函式的放置,應該放在標頭檔案中。那麼這到底是為什麼 呢?僅僅是一種 規範問題還是必須這樣做呢?下面我就來講講我自己的理解吧。要徹底理解這個問題,首先就要了解下函式的宣告和定義了。我們知道,函式可以 在多處宣告,但只能在乙個地方定義,不然就會出...