2017-05-29 3 views
0

これは間違った質問かもしれませんが、私は好奇心が強いですインラインクラスは異なるクラスの関数で、どちらもインラインですか?

C++のクラスで関数を定義すると、自動的にインライン化されます。

クラス 'a'がクラス 'b'の関数を呼び出すと、両方の関数がそれぞれのヘッダーファイルで定義されていますが、どちらもインライン展開されていますか?

class a 
{ 
    void check_stuff() 
    { 
     b.do_stuff(param); 
    } 
}; 

class b 
{ 
    type xyz; 

    public: 
    void do_stuff(type in) 
    { 
    xyz += in; 
    } 
}; 
+0

':: check_stuff()'において、 'b'は型であり、オブジェクトではありません。 – aschepler

答えて

1

彼らの両方がインラインとして展開されていますか?

関数がインラインであるかどうかと、関数呼び出しがインライン展開されているかどうかは、直接結びついていません。インライン関数は、展開せずに呼び出すことができますが、一部のコンテキストでは、非インライン関数をインライン展開することができます。

はい、p ossibleで、インライン展開された関数内で関数をインライン展開することができます。

関連する問題