[解決済み] C/C++ 構造体とクラス
2022-08-02 11:18:09
質問
C++の授業を終えて、構造体/クラスはいくつかの小さな違いを除いてほとんど同じであるように感じました。
C 言語でプログラミングをしたことはありませんが、C 言語に構造体があることは知っています。C では、他の構造体を継承し、public/private の修飾子を設定することは可能でしょうか。
普通の C 言語でこれができるなら、一体なぜ C++ が必要なのでしょうか?クラスは構造体と何が違うのでしょうか?
どのように解決するのですか?
C++で 唯一の違いは、クラスのアクセス修飾子 (メンバ変数、メソッド、およびベース クラス) のデフォルトが private であるのに対し、構造体のアクセス修飾子のデフォルトは public であることです。
しかし C では では、構造体は単なる(公開)データの集合体であり、他のクラスのような機能(メソッド、コンストラクタ、基底クラスなど)を持ちません。 C++ はこのキーワードを継承していますが、セマンティクスを拡張しています。 (ただし、構造体のデフォルトが public であるのはこのためです。) C の構造体のように書かれた構造体は、構造体のように振る舞います。
例えば、最初のパラメーターとして構造体へのポインターを取る関数を定義する、あるいは 時折 構造体をサブクラス/スーパークラスとするように強制するなど、C 言語ではいくつかの OOP を偽ることができますが、それは常にボルトで固定されているようなもので、実際には言語の一部ではありません。
関連
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み] C++の'struct'と'typedef struct'の違い?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] なぜクラスではなくストラクチャーを選ぶのか?
-
[解決済み] C++のstructとclassの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み] C++構造体の正しい初期化方法
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?