C 類裡面的哪些成員函式是內聯函式?

2021-08-27 05:38:29 字數 1075 閱讀 4423

類定義的內聯函式分為以下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 類的內聯成員函式的放置,應該放在標頭檔案中。那麼這到底是為什麼 呢?僅僅是一種 規範問題還是必須這樣做呢?下面我就來講講我自己的理解吧。要徹底理解這個問題,首先就要了解下函式的宣告和定義了。我們知道,函式可以 在多處宣告,但只能在乙個地方定義,不然就會出...