全く違いはありません。
2つの唯一の違いは、クラス内のメンバーが暗黙的にインラインとしてタグ付けされていることです。しかし、これは本当の意味はありません。
参照してください:inline and good practices
ドキュメントはインラインタグはメソッドがインライン化されるべきであること(開発者)コンパイラへのヒントであることを述べています。すべての現代のコンパイラはこのヒントを無視し、メソッドがインライン化されるべきときを判断する内部ヒューリスティックを使用します(人間は悪名高く悪化しています)。
インラインのもう1つの使用法は、メソッドの複数の定義を見ることが期待されるかもしれないことをリンカーに伝えることです。関数定義がヘッダファイル内にある場合、ヘッダファイルを取得する各コンパイルユニットは関数の定義を持ちます(インライン化されていないと仮定します)。通常、これによりリンカーはエラーを生成します。インラインタグでは、コンパイラは複数の定義がある理由を理解し、アプリケーション以外のものはすべて削除します。
プロセスのインライン化に関する注意:メソッドは、インライン化するためにヘッダーファイル内にある必要はありません。現代のコンパイラは、異なるコンパイル単位でコンパイルされていても、すべての関数がインライン展開の対象となる完全なアプリケーション最適化を処理します。インラインフラグは一般に無視されるので、ヘッダーまたはソースファイルにメソッドを置くと違いはありません。
質問はabout * member *関数本体のクラス宣言であり、 'inline'キーワードに関するものではありません。 –
@ Nikolai N Fetissov:なぜ私はインラインについて話しているのかを追加しました。 –