
C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが
privateかpublicかという違い「だけ」しか全くないのでしょうか?
クラスにおける
value class / ref class
という分類はC++/CLIのもので
これについては
value class の方は C言語の構造体に近いという事でいいでしょうか?
ref classの方は
ネイティブのC++のクラスを
マネージ用にしたようなもので
C++/CLIの構造体は
C++のそれと同じで
OKですか?
そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか?
No.2ベストアンサー
- 回答日時:
> ということは、structも継承可、という事でしょうか?
structでも継承可能です。
> 継承のアクセス指定の方は
> クラスと構造体ではどうなるのでしょうか?
class A : Base {};
は
class A : private Base {};
と等価です。
一方、
struct A : Base {};
は
struct A : public Base {};
と等価です。
> そして「集成体」というのが初めて知ったのですが
> これはいわゆる、配列や・・・ある条件下でのクラス・・?
> なのでしょうか?
配列と以下の条件をすべて満たすクラスのことです。
・ユーザー定義のコンストラクタを持たない
・非公開または限定公開のメンバを持たない
・基底クラスを持たない
・仮想関数を持たない
ちなみにC言語の集成体は、配列と構造体の総称です(共用体は集成体ではありません)。
なるほど♪
ありがとうございます。
え~っと、つまり…
・非公開または限定公開のメンバを持たない
↓
privateやprotectedを持たないつまり
全部public
・基底クラスを持たない
↓
継承してない
・仮想関数を持たない
↓
virtualの文字が見当たらない
という言い方も出来るということですか?
そしてこの
・ユーザー定義のコンストラクタを持たない
という部分は、どういう意味なのでしょうか…?
コンストラクタって、書かなくてもできましたっけ…??
「中身なし」って事でしょうか?
No.3
- 回答日時:
> という言い方も出来るということですか?
そうですが...
> virtualの文字が見当たらない
については、マクロで置換されている可能性もあるので、その部分だけを見て判断するのは危険です。
> ・ユーザー定義のコンストラクタを持たない
> という部分は、どういう意味なのでしょうか…?
> コンストラクタって、書かなくてもできましたっけ…??
クラスにコンストラクタをまったく定義しない場合、デフォルトコンストラクタとコピーコンストラクタが勝手に生成されます。
なるほど
そういう意味では、確かにそうですね。
そして、コンストラクタについては
言われてみるとそういう文を見たことがあった気がしました。(いつも大抵いじってたので、すっかり忘れてました。)
ありがとうございます。
No.1
- 回答日時:
> C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが
> privateかpublicかという違い「だけ」しか全くないのでしょうか?
C++では、構造体も共用体もクラスの一種です。
クラスキーがstructのものを「構造体」、unionのものを「共用体」と呼んでいるにすぎません。
クラスキーがclassのものとstructのもののでは、メンバのアクセス指定と継承のアクセス指定のデフォルトが異なります。
> value class の方は C言語の構造体に近いという事でいいでしょうか?
どちらかといえば、C++の集成体に近いかも。
あとはメモリ管理の方法とか...。
ありがとうございます。
確認ですが
value class の方は、アンマネージですよね?
そして、
>クラスキーがstructのものを「構造体」、unionのものを「共用体」と呼んでいるにすぎません
ということは、structも継承可、という事でしょうか?
継承のアクセス指定の方は
クラスと構造体ではどうなるのでしょうか?
そして「集成体」というのが初めて知ったのですが
これはいわゆる、配列や・・・ある条件下でのクラス・・?
なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 日本語 日本語のアクセント 1 2022/05/12 13:26
- 大学受験 高校化学の有機分野です。 この構造式で表される立体異性体は3種類ですが この場合ってc=cに結合して 3 2022/09/28 11:14
- 化学 構造式とは(ジエチルエーテル) 3 2022/11/24 11:11
- その他(プログラミング・Web制作) Pythonのデータ型 2 2023/04/26 12:53
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- C言語・C++・C# C言語で構造体の参照渡しができません 2 2022/12/18 21:22
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラス間でのデータ参照
-
関数内の変数に<summary>コメン...
-
C#にて別クラスの関数を使いたい
-
リフレクション
-
継承したクラス側のクラス名の取得
-
C#でほかのファイルにある自作...
-
インスタンス化の条件分けについて
-
アップキャスト、ダウンキャス...
-
C++で親クラスの関数を呼び出す...
-
C++でfriendクラスにしているの...
-
Java リフレクションについて
-
a href="..." とServlet
-
JSPでbeanプロパティ(配列)を...
-
範囲外の数値を代入したらエラ...
-
Java
-
構造 他のクラスの構造体を別...
-
c++,ある関数のクラスから別の...
-
java-別クラスの変数の使い方を...
-
「タイプ初期化子が例外をスロ...
-
レコード件数の表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クラス間でのデータ参照
-
範囲外の数値を代入したらエラ...
-
関数内の変数に<summary>コメン...
-
C#にて別クラスの関数を使いたい
-
c++,ある関数のクラスから別の...
-
構造 他のクラスの構造体を別...
-
C#でほかのファイルにある自作...
-
C++でfriendクラスにしているの...
-
import と extends について
-
Java リフレクションについて
-
無名パッケージからのインポート
-
visual studioのデザイナ画面で...
-
ひとつのファイルにクラスは1つ?
-
違うクラスからの変数の共有化
-
C#のクラスライブラリでメッセ...
-
継承したクラス側のクラス名の取得
-
Java
-
java-別クラスの変数の使い方を...
-
C# インターフェイスの実装
-
デシリアライズでオブジェクト...
おすすめ情報