.cpp ファイルで定義されたメンバー関数をインライン化できますか?

DDD
リリース: 2024-10-27 22:25:02
オリジナル
342 人が閲覧しました

 Can You Inline Member Functions Defined in .cpp Files?

インライン メンバー関数定義を .cpp ファイルに配置する

この記事では、配置規則にもかかわらず、インライン メンバー関数を .cpp ファイルに実装するというジレンマに対処します。

以下のコード スニペットで示されているように、問題は循環インクルージョンから発生します。

<code class="cpp">// File A.h
#include "B.h"

class A {
    B b;
};</code>
ログイン後にコピー
<code class="cpp">// File B.h
#include "A.h" // forward declaration

class B {
    inline A getA();
};</code>
ログイン後にコピー

循環依存関係により、getA() の実装は次のとおりです。

<code class="cpp">// File B.cpp
#include "B.h"
#include "A.h"

inline A B::getA() {
    return A();
}</code>
ログイン後にコピー

コンパイラはインライン getA を実行しますか?

いいえ、getA() が B.cpp 自体内で使用されている場合を除きます。

インライン キーワードの重要性

クラス本体の外側の定義内の inline キーワードが最も重要です。

インラインを定義する別の方法.cpp ファイル内のメンバー関数

残念ながら、インライン メンバー関数の定義を .cpp ファイルに配置する別の方法はありません。標準では、関数が呼び出される場所に関係なく、コンパイラーが関数定義を参照する必要があります。

以上が.cpp ファイルで定義されたメンバー関数をインライン化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!