解決済み

【C++】クラス内のメンバ関数の占める領域

  • 困ってます
  • 質問No.5370888
  • 閲覧数150
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 76% (10/13)

C++のことです(恐らく、他言語にも共通していると思いますが)。

例えば、
class a
{
void func();
};
という風なクラスがあったとして、これを
a kurasu[100];
と言う風にインスタンスを生成した場合、メンバ関数funcも100個分作られるのでしょうか。
“関数が作られる”って言い方は適切でないかもしれませんが……。。。
100個分の関数用にメモリが割り当てられるのか、といったニュアンスです。

よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 19% (337/1712)

>メンバ関数funcも100個分作られるのでしょうか。
作られません。

メンバ関数(staticを除く)の正体は、暗黙の引数thisを持つだけのただの関数です。

つまり
void __class_a_func(a *this)
{
}

といった感じの関数が1つあるだけです。
お礼コメント
Kujs

お礼率 76% (10/13)

わかりやすい回答、ありがとうございます。
投稿日時 - 2009-10-16 18:46:04
感謝経済

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 56% (730/1282)

クラスのインスタンスは、クラスのメンバ変数(static除く)のデータ領域がインスタンスの数だけ作られるだけでメンバ関数が複数作られるわけでは有りません。
お礼コメント
Kujs

お礼率 76% (10/13)

わかりやすい回答、ありがとうございます。
投稿日時 - 2009-10-16 18:46:19
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ