質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

Q&A

解決済

2回答

4603閲覧

「メンバ変数」「メンバ関数」等の「メンバ」という名前の由来は?

mr0237

総合スコア164

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

0グッド

0クリップ

投稿2019/08/23 15:05

クラスの中にある変数」のことを「メンバ変数」、「メンバ関数」と呼びますが、
そもそも、「メンバ」の名前の由来は何なんでしょうか?

メンバのことを英語では「member」といいますが、それと関係があるのでしょうか?

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/08/24 01:12

もっとちゃんと調べてそこで納得いかなければ調べた内容をもとに質問してください。
mr0237

2019/08/25 15:30

m.ts10806さん。何でそう思ったのですか?
m.ts10806

2019/08/25 15:35

オブジェクト指向観点で調べた内容が何も質問本文に記載されていないからです。
mr0237

2019/08/25 15:37

m.ts10806さん >オブジェクト指向観点で調べた内容が何も質問本文に記載されていないからです。 どこが、オブジェクト指向観点で調べた内容が何も質問本文に記載されていないのですか?
m.ts10806

2019/08/25 15:44

自身が書いた質問のどこに「メンバの由来は何か」を調べた内容があるのでしょうか。少なくとも私には分かりませんでした。 というか自分で書いた質問ですよね。この内容で「ちゃんと調べたことが分かる」と思えるのなら考え方改めた方が良いでしょう。
mr0237

2019/08/25 15:48

m.ts10806さん >自身が書いた質問のどこに「メンバの由来は何か」を調べた内容があるのでしょうか。少なくとも私には分かりませんでした。 なんで自身が書いた質問のどこに「メンバの由来は何か」を調べた内容があると思ったのですか?さらになんで分からないのですか? >というか自分で書いた質問ですよね。この内容で「ちゃんと調べたことが分かる」と思えるのなら考え方改めた方が良いでしょう。 なんでこの内容で「ちゃんと調べたことが分かる」と思えるのなら考え方改めた方が良いと思ったのですか?
m.ts10806

2019/08/25 18:37 編集

始めの私のコメントである >もっとちゃんと調べてそこで納得いかなければ調べた内容をもとに質問してください。 から何も察することがないのでしたらその時点でおかしくなってますけど。。 ガイドラインちゃんと読んでください。 https://teratail.com/help/question-tips#questionTips1-2 >検索して見つけたページでわからない事があれば、どのページのどの部分がわからないのかを明確に記し質問してみてください。 この質問にはどこにも「調べたこと」が書かれていません。 「メンバのことを英語では「member」といいますが」なんてただの英単語の話であって 「「メンバ」の名前の由来について調べたこと」でも何でもありません。 だからちゃんと調べて調べた内容をもとに質問してくださいと指摘しています。 ガイドラインにあることを守らずに丸投げしているという指摘をしてます。 それに対して「なぜそう思ったか」と聞くので「調べた内容が書かれてない」と再度指摘しました。 そして「何も質問本文に記載されていないのですか? 」と聞くので この流れではほとんどの人が「きちんと調べた内容を記載したつもりなのか」と疑問を持ちます。 そこで更に突っ込むと、「なぜ調べた内容があると思ったのか」と聞き返してますよね。 意味が分かりません。 「なぜ調べた内容があると思ったのか」=「丸投げですよ」と認めたことになりますよね。 丸投げは非推奨です。 https://teratail.com/help/avoid-asking だから、調べた内容と自分が試した内容、納得いかないことがあるのなら調べた内容をきちんと提示し「どこが」「どうわからないのか」明示する必要があります。 別にraccyさんの回答のように深く歴史まで突っ込む必要はないかと思いますが、キーワードで調べるくらいはしないと誰がどう見ても丸投げでしょう。
退会済みユーザー

退会済みユーザー

2019/08/25 23:39

何を言っても無駄なようです。
mr0237

2019/08/26 01:55

m.ts10806さん >ガイドラインちゃんと読んでください。 どこが読んでいないと思ったのですか? >この流れではほとんどの人が「きちんと調べた内容を記載したつもりなのか」と疑問を持ちます。 >そこで更に突っ込むと、「なぜ調べた内容があると思ったのか」と聞き返してますよね。 >意味が分かりません。 なぜ疑問を持つのですか?さらになんで意味が分からないのですか? >「なぜ調べた内容があると思ったのか」=「丸投げですよ」と認めたことになりますよね。 >丸投げは非推奨です。 どこが丸投げなんですか?どの辺が丸投げなんですか?
mr0237

2019/08/26 01:55

dyoshikawaさん >何を言っても無駄なようです。 なんで無駄だと思ったのですか?
m.ts10806

2019/08/26 02:00 編集

いや、もういいです。コミュニケーションちゃんと取れるようにならないとまともに質問サイトは使えませんよ。(失礼、まともに使えてはないですね。回答者皆さんの時間を奪うだけ奪って何も得られていません) ガイドライン読んで何も分からないなら運営にでも問い合わせてください。
m.ts10806

2019/08/26 01:59

過去のやり取りも「なんで~なんですか?」ってオウム返しにしてるだけで話になってない。頭使えないならプログラミングは無理です(これは断定で根拠も既に述べているので「なぜ~」には応えられません自分の過去の行動見返して)
guest

回答2

0

Cの用語をそのままC++で借用した結果だと思われます。

Cの構造体(structure)や共用体(union)を構成する内容の要素をメンバー(member)といいます。memberという英語の意味はある物を構成する「一員」や「一部」のことを表しますので、構造体の一員(一部)としてmemberという言葉が割り当てられたと思われます。他にも構造体でメンバーにアクセスするのに使用する.はメンバーアクセス演算子(member access operator)と言ったりします。

C++はCの拡張です。C++でのクラス(class)はCの構造体(structure)をそのまま拡張したものになっています。言ってみれば、C++上ではクラスと構造体に区別はありません(classstructはデフォルトのアクセス権が異なる以外は違いがありません)。つまり、Cでメンバーであった物もC++でもメンバーでなければ、Cを拡張していると言うにはおかしなことになるということです。しかし、C++は通常の変数以外にもstatic修飾された変数や関数もメンバーとして登録できます。それらを区別する意味でも、通常の変数は「メンバー変数(英語では単にmember)」、static修飾されたものは「静的メンバー変数(英語では単にstatic member)」、関数であるものは「メンバー関数(member function)」と呼んでいます。コンストラクターやデストラクターは他のメンバーと同じ所に書きますがメンバーではありません。

これらはC++だけの話です。C/C++に強く影響を受けすぎているDのような一部の例外を除けば、私の知る限り、ほとんどのオブジェクト指向言語では、メンバー変数やメンバー関数という言い方は公式のドキュメントにはありません。もう一つのオブジェクト指向言語であるSmalltalk由来の呼び方やCとは切り離された呼び方をしています。なぜなら、それはもはやCの構造体では無いからです。(Cの構造体のような機能が無いというわけでは無く、クラスが(内部構造は別として)構造体の単なる拡張では無いということです。)

|言語|インスタンス変数|クラス変数|メソッド|
|---|---|---|
|Smalltalk|インスタンス変数(instance varibale)|クラス変数(class variable)|メソッド(method)|
|C|メンバー(member)|N/A|N/A|
|C++|メンバー変数(member)|静的メンバー変数(static member)|メンバー関数(member function)|
|D|動的フィールド(dynamic field)|静的フィールド(static field)|メンバー関数(member function)|
|Java|フィールド(field)|静的フィールド(static field)|メソッド(method)|
|C#|インスタンスフィールド(instance field)|静的フィールド(static field)|メソッド(method)|
|Ruby|インスタンス変数(instance varibale)|クラス変数(class variable)|メソッド(method)|
|Python|データ属性(data attribute)|クラス変数(class variable)|メソッド(method)
|ECMAScript(JavaScript)|プロパティ(property)|N/A|メソッド(method)

※ C#にはメソッドではあるがフィールドのようにアクセスできる「プロパティ(property)」という物があります。
※ C#ではフィールドやメソッドなどをあわせて「クラスメンバー(class member)」といいます。
※ ECMAScriptでは「静的フィールド(static field)」が提案されていますが、言語仕様としてクラス変数に該当する物はありません。クラス(コンストラクター)自体のプロパティをクラス変数として使うこと自体は可能です。

投稿2019/08/24 02:09

編集2019/08/24 02:11
raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

クラスのメンバー(構成要素)だからです

メンバー

メンバー(member)
1 集団を構成する人。構成員。一員。「クラブのメンバー」
2 そこに集まる面々。顔ぶれ。「いつものメンバーがそろう」

投稿2019/08/23 15:06

編集2019/08/23 15:09
y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mr0237

2019/08/25 15:31

ありがとうこざいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問