アプリ版:「スタンプのみでお礼する」機能のリリースについて

C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが
privateかpublicかという違い「だけ」しか全くないのでしょうか?

クラスにおける
value class / ref class
という分類はC++/CLIのもので
これについては
value class の方は C言語の構造体に近いという事でいいでしょうか?

ref classの方は
ネイティブのC++のクラスを
マネージ用にしたようなもので

C++/CLIの構造体は
C++のそれと同じで
OKですか?

そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか?

A 回答 (3件)

> ということは、structも継承可、という事でしょうか?



structでも継承可能です。

> 継承のアクセス指定の方は
> クラスと構造体ではどうなるのでしょうか?

class A : Base {};



class A : private Base {};

と等価です。
一方、

struct A : Base {};



struct A : public Base {};

と等価です。

> そして「集成体」というのが初めて知ったのですが
> これはいわゆる、配列や・・・ある条件下でのクラス・・?
> なのでしょうか?

配列と以下の条件をすべて満たすクラスのことです。
・ユーザー定義のコンストラクタを持たない
・非公開または限定公開のメンバを持たない
・基底クラスを持たない
・仮想関数を持たない

ちなみにC言語の集成体は、配列と構造体の総称です(共用体は集成体ではありません)。
    • good
    • 0
この回答へのお礼

なるほど♪
ありがとうございます。

え~っと、つまり…
・非公開または限定公開のメンバを持たない

privateやprotectedを持たないつまり
全部public

・基底クラスを持たない

継承してない

・仮想関数を持たない

virtualの文字が見当たらない

という言い方も出来るということですか?

そしてこの
・ユーザー定義のコンストラクタを持たない
という部分は、どういう意味なのでしょうか…?
コンストラクタって、書かなくてもできましたっけ…??

「中身なし」って事でしょうか?

お礼日時:2009/01/28 03:27

> という言い方も出来るということですか?



そうですが...

> virtualの文字が見当たらない

については、マクロで置換されている可能性もあるので、その部分だけを見て判断するのは危険です。

> ・ユーザー定義のコンストラクタを持たない
> という部分は、どういう意味なのでしょうか…?
> コンストラクタって、書かなくてもできましたっけ…??

クラスにコンストラクタをまったく定義しない場合、デフォルトコンストラクタとコピーコンストラクタが勝手に生成されます。
    • good
    • 0
この回答へのお礼

なるほど
そういう意味では、確かにそうですね。
そして、コンストラクタについては
言われてみるとそういう文を見たことがあった気がしました。(いつも大抵いじってたので、すっかり忘れてました。)

ありがとうございます。

お礼日時:2009/01/28 20:03

> C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが


> privateかpublicかという違い「だけ」しか全くないのでしょうか?

C++では、構造体も共用体もクラスの一種です。
クラスキーがstructのものを「構造体」、unionのものを「共用体」と呼んでいるにすぎません。
クラスキーがclassのものとstructのもののでは、メンバのアクセス指定と継承のアクセス指定のデフォルトが異なります。

> value class の方は C言語の構造体に近いという事でいいでしょうか?

どちらかといえば、C++の集成体に近いかも。
あとはメモリ管理の方法とか...。

この回答への補足

「structも」→「ref structも」です。

補足日時:2009/01/27 22:10
    • good
    • 0
この回答へのお礼

ありがとうございます。

確認ですが
value class の方は、アンマネージですよね?

そして、
>クラスキーがstructのものを「構造体」、unionのものを「共用体」と呼んでいるにすぎません

ということは、structも継承可、という事でしょうか?
継承のアクセス指定の方は
クラスと構造体ではどうなるのでしょうか?

そして「集成体」というのが初めて知ったのですが

これはいわゆる、配列や・・・ある条件下でのクラス・・?
なのでしょうか?

お礼日時:2009/01/27 21:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!