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++での名前空間とクラスの違い

    このセクションでは、C++の名前空間とクラスの違いを確認します。名前空間とクラスは2つの異なる概念です。クラスはデータ型です。クラスは基本的に構造の拡張バージョンです。クラスにはデータメンバーと関数をメンバーとして含めることができますが、名前空間には変数と関数を1つにグループ化することで含めることができます。 名前空間をオブジェクトとして作成することはできません。この概念は、類似の関数、クラス、変数などを区別するための追加情報として使用されます。変数、同じ名前の関数は、異なる名前空間に配置できます。 ここで、名前空間とクラスのいくつかの重要な違いを指摘しましょう。 名前空間は、衝突し

  2. C++での仮想関数と純粋仮想関数の違い

    次の表に、仮想機能と純粋仮想機能の違いを示します。 仮想関数 純粋仮想関数 仮想関数の定義はクラスにあります。 純粋仮想関数には定義がありません。 宣言:virtual funct_name(parameter_list){。 。 。 。 。}; 宣言:virtual funct_name(parameter_list)=0; 派生クラスの概念はありません。 クラスに少なくとも1つの純粋仮想関数が含まれている場合、そのクラスは抽象として宣言されます。 必要に応じて、基本クラスは仮想関数をオーバーライドできます。 純粋仮想関数の場合、