C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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++構造にはアクセス指定子があります。

  1. C++の「struct」と「typedefstruct」の違いは?

    C ++では、structとtypedef structの間に違いはありません。これは、C ++では、すべてのstruct / union / enum/class宣言が暗黙的にtypedefであるかのように動作するためです。 ed、同じ名前の別の宣言によって名前が隠されていない限り。 typedefを前方宣言できないという微妙な違いが1つありますが、したがって、typedefオプションの場合、どこでも使用する前に、typedefを含むファイルを含める必要があります。

  2. C++文字列定数と文字定数の違い

    C ++では、一重引用符で囲まれた文字は文字リテラルです。文字型です。たとえば、「a」は、ASCIIベースのシステムでは値97のchar型です。 二重引用符で囲まれた1文字または文字列は、文字列リテラルを表します。これはconstchar[]型であり、文字列の長さ+1のサイズの配列を参照します。その余分な文字は文字列の終わりを示すためにあります。 文字列リテラルは、「abcdefg」のように任意の長さにすることができます。文字リテラルには、ほとんどの場合、1文字だけが含まれます。これらが印刷されるとき、文字列リテラルは、文字列で最初の\0またはNULL文字が検出されるまで印刷されます。