CとC++の構造体の違い
ここでは、Cの構造体とC++の構造体の違いを確認します。 C ++構造は、ほとんどC++のクラスに似ています。 C構造体では、すべてのメンバーがパブリックですが、C ++では、デフォルトでプライベートです。その他の違いを以下に示します。
C構造体 | C++構造 |
---|---|
Cの構造体は、構造体の内部にメンバー関数を持つことはできません。 | C ++の構造は、メンバー変数を持つメンバー関数を保持できます。 |
Cで構造データを直接初期化することはできません。 | C++で構造データを直接初期化できます。 |
Cでは、構造体型変数を宣言するために「struct」キーワードを記述する必要があります。 | C ++では、変数の宣言に「struct」キーワードを使用する必要はありません。 |
C構造体に静的メンバーを含めることはできません。 | C++構造体は静的メンバーを持つことができます。 |
sizeof演算子は、Cの空の構造体に対して0を生成します | sizeof演算子は、C++の空の構造に対して1を生成します |
データ非表示機能はC構造体では使用できません。 | データ非表示機能はC++構造に存在します。 |
C構造体にはアクセス修飾子がありません。 | C++構造にはアクセス指定子があります。 |
-
C++の「struct」と「typedefstruct」の違いは?
C ++では、structとtypedef structの間に違いはありません。これは、C ++では、すべてのstruct / union / enum/class宣言が暗黙的にtypedefであるかのように動作するためです。 ed、同じ名前の別の宣言によって名前が隠されていない限り。 typedefを前方宣言できないという微妙な違いが1つありますが、したがって、typedefオプションの場合、どこでも使用する前に、typedefを含むファイルを含める必要があります。
-
C++文字列定数と文字定数の違い
C ++では、一重引用符で囲まれた文字は文字リテラルです。文字型です。たとえば、「a」は、ASCIIベースのシステムでは値97のchar型です。 二重引用符で囲まれた1文字または文字列は、文字列リテラルを表します。これはconstchar[]型であり、文字列の長さ+1のサイズの配列を参照します。その余分な文字は文字列の終わりを示すためにあります。 文字列リテラルは、「abcdefg」のように任意の長さにすることができます。文字リテラルには、ほとんどの場合、1文字だけが含まれます。これらが印刷されるとき、文字列リテラルは、文字列で最初の\0またはNULL文字が検出されるまで印刷されます。