- C言語なら俺に聞け! Part 135©2ch.net
628 :デフォルトの名無しさん[sage]:2016/06/14(火) 01:01:34.55 ID:kHZZ/T/q - それC++だろ
|
- C言語なら俺に聞け! Part 135©2ch.net
633 :デフォルトの名無しさん[sage]:2016/06/14(火) 01:32:08.93 ID:kHZZ/T/q - 構造体の名前が構造体の先頭アドレスを指すことは確かだけど参照と言っていいのかなあ
それ言い出すと関数名も関数へのアドレスを指すけど関数を別の関数の引数として渡したり出来ないよね
|
- C言語なら俺に聞け! Part 135©2ch.net
634 :デフォルトの名無しさん[sage]:2016/06/14(火) 01:34:31.47 ID:kHZZ/T/q - 誤解のないように言っておくけど関数へのポインタを渡すことができるのは知ってる
|
- C言語なら俺に聞け! Part 135©2ch.net
637 :デフォルトの名無しさん[sage]:2016/06/14(火) 01:39:32.29 ID:kHZZ/T/q - え?出来るの?
それじゃ関数型言語みたいに高階関数の定義とかできる方法あるの?
|
- C言語なら俺に聞け! Part 135©2ch.net
639 :デフォルトの名無しさん[sage]:2016/06/14(火) 01:51:37.74 ID:kHZZ/T/q - いや具体的な実装のことじゃなくて、参照とかの抽象的なレベルでのこと言っているんだけど
ポインタで具体的なアドレス使えば何でも書けるのは当たり前 アセンブラでAdd命令で加算するのを、C言語では加算演算子で加算処理を抽象化するように 関数を抽象化する方法を聞いている 関数へのポインタは具体的なアドレスを指す変数でしかないので、抽象的な意味での参照の方法 があるのかどうかということ
|
- C言語なら俺に聞け! Part 135©2ch.net
647 :デフォルトの名無しさん[sage]:2016/06/14(火) 06:48:32.78 ID:kHZZ/T/q - >>643-645
そうだよなあ C言語は実体を持つポインタ変数の値渡ししか出来ないよなあ C++の変数の参照にしてもただのエイリアスをちょっと扱いやすくしただけだし あえて言えばnew演算子で生成するクラスインスタンスの参照が本来の参照の意味に一番近いかな
|
- C言語なら俺に聞け! Part 135©2ch.net
651 :デフォルトの名無しさん[sage]:2016/06/14(火) 07:50:20.51 ID:kHZZ/T/q - >>649
違うよ インスタンスの参照はただの変数の参照とは意味合いが違う オブジェクトそのもの(いわゆる属性プロパティ(メンバ変数)や 操作(メンバ関数))を含めた抽象的な意味合いでの参照の意味を持つ
|
- C言語なら俺に聞け! Part 135©2ch.net
652 :デフォルトの名無しさん[sage]:2016/06/14(火) 07:55:50.12 ID:kHZZ/T/q - 補足
インスタントの参照をポインタ変数に代入するのはC++でのただの実現手段であって 参照そのものの持つ意味はもっと広い
|
- C言語なら俺に聞け! Part 135©2ch.net
653 :デフォルトの名無しさん[sage]:2016/06/14(火) 07:56:42.93 ID:kHZZ/T/q - インスタントってなんだw
インスタンスに訂正
|
- C言語なら俺に聞け! Part 135©2ch.net
655 :デフォルトの名無しさん[sage]:2016/06/14(火) 08:33:05.40 ID:kHZZ/T/q - C#やJavaScriptなどのマルチパラダイムのプログラミング言語を学べば
体験的に納得できることだけど、手続き型(特にC言語)だけに拘っていると こういった視野は持ち得ないし分からないかも知れないな プログラム言語の世界をもっと広い目で眺めたほうがいいよ
|
- C言語なら俺に聞け! Part 135©2ch.net
658 :デフォルトの名無しさん[sage]:2016/06/14(火) 10:11:53.40 ID:kHZZ/T/q - >>657
プロパティも言語によって扱いの変わる概念だからね ただの属性としての意味しか持たない場合もあるし、C#のようにメンバ変数のアクセサとしての意味を 含んだ概念を指す場合もある 一般的には、属性と操作を含むクラスの実体(インスタンス)がオブジェクトという解釈でいいよ staticなクラスのような実体を持たない例外もあるけど、何にせよ何らかの手段で紐付けをしておかないと 取り扱いができない その紐づけのための概念が参照であり、特別に参照型変数を用意している言語もあるし、C++のように クラス型の変数という呼び方をしている言語もある 特にC++はクラス型の変数は一般にポインタで扱うことが多いので、インスタンスの参照とインスタンスへの ポインタが混同される傾向が強い
|
- C言語なら俺に聞け! Part 135©2ch.net
659 :デフォルトの名無しさん[sage]:2016/06/14(火) 10:15:39.69 ID:kHZZ/T/q - 誤:実体を持たない
正:(クラスそのものが)実体をもつ
|
- C言語なら俺に聞け! Part 135©2ch.net
661 :デフォルトの名無しさん[sage]:2016/06/14(火) 10:22:33.38 ID:kHZZ/T/q - 失礼
ROMに戻ります
|