[過去ログ] C言語なら俺に聞け 151 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
594: (オッペケ Sr88-2aw6) 2019/05/21(火)18:23 ID:6muVxYSDr(2/2)調 AAS
>>593
書き出し周期はファイルシステムに依存するよ
例えばext3かext4かで挙動は違う
595(1): (ササクッテロル Sp88-Qul6) 2019/05/21(火)18:37 ID:G/IUf+gXp(1/2)調 AAS
C言語のfprintfを用いるときに、前行の改行を消す方法をご存知ないですか?
エスケープシーケンスでバックスペースを試したのですか上手くいかなくて困っています。
状況としてはfor文を用いて改行を含んだ文字列を繰り返し出力させているんですが、最後の行だけ改行を無くし、続けて別の文を出力したいのです。
繰り返しの回数を変えて最後に改行なしの処理をいれればいいと思うのですが、簡単な方法があればと思い質問させていただきました。
よろしくお願いします。
596: (ワッチョイ 3f01-pg4x) 2019/05/21(火)18:40 ID:UdJL+OJH0(1)調 AAS
ストリームの撒き戻しは難しいんじゃないか? 表示装置なのかファイルなのかでも変わるだろうし…
597: (ワッチョイ 1c79-N32O) 2019/05/21(火)18:54 ID:Hcv2vO/e0(2/2)調 AAS
ファイルポインタは巻き戻せる
標準出力ならエスケープシーケンスで右上に行けばいい
598: (ワッチョイ ee02-8NB0) 2019/05/21(火)19:19 ID:IJ+i04U80(1/2)調 AAS
こんな感じでいいのか?
#include <stdio.h>
int main(void) {
FILE* fp;
fp = fopen("Test.txt","w");
fprintf(fp,"hoge\n");
fseek(fp,-1,SEEK_CUR); /* 改行2byteなら-2 */
fprintf(fp,"fuga\n");
fclose(fp);
return 0;
}
599(1): (ワッチョイ 462d-EL+e) 2019/05/21(火)19:53 ID:UPiNM42a0(2/2)調 AAS
質問者が知りたい情報とは違うので、スルー推奨かもですが。
もし自分が、同じことをやれ、と言われたら。
「改行を含んだ文字列」を、「改行」と「それ以外の文字列」の2つに分けて、別々に出力しようとするかなあ。
ループの回数を変える必要はなくて。イメージとしては
for() ※行単位のループ
{
if(最初の行でなければ) fprintf で「改行」を出力
fprintf で「それ以外の文字列」を出力
}
fprintf で「別の文を出力」
600(2): (ドコグロ MM02-A+mh) 2019/05/21(火)19:58 ID:kdkwqODuM(1/2)調 AAS
>>595
bool First = true;
for( … ){
if(First){
First = false;
} else {
fprintf("¥n");
}
fprintf( … );
}
601: (ドコグロ MM02-A+mh) 2019/05/21(火)19:58 ID:kdkwqODuM(2/2)調 AAS
あっ、被ったや
602: (ワッチョイ ee02-8NB0) 2019/05/21(火)20:07 ID:IJ+i04U80(2/2)調 AAS
ファイルが標準出力等でvt100互換端末であれば。
#include <stdio.h>
#include <string.h>
int main(void) {
int i;
i=fprintf(stdout,"hogehogehogehoge\n");
if (0) fprintf(stdout,"\E[01Afuga%*c\n",i,' '); /* これか? */
else fprintf(stdout,"\E[01A\E[%02dCfuga\n",i-strlen("\n")); /* あるいはこれか? */
return 0;
}
cmdとかdos窓なら無理?
603: (ササクッテロル Sp88-Qul6) 2019/05/21(火)20:22 ID:G/IUf+gXp(2/2)調 AAS
>>596-602
皆様回答ありがとうございます。
ファイルを扱っているので、fseekで戻す方法を試してみようと思います。
604(1): (スププ Sd94-AU7T) 2019/05/21(火)20:31 ID:JOJ6V6qzd(1)調 AAS
プログラムいじられるなら、改行出す方をどうにかした方が良さそうだが
605(1): (ワッチョイ aaf9-8NB0) 2019/05/21(火)20:31 ID:8vKfOnx40(1)調 AAS
ansi.sysを組み込めばVT100互換エスケープシーケンスが
という昔話…と思ったが、ググったらvistaまであったんだな驚き
Windows 10 Threshold 2(10.0.1058)ではコマンドプロンプトでANSI/VT100互換表示が可能に
というスラドの記事も出た
606(2): (アウアウウー Sa83-RNyv) 2019/05/21(火)20:52 ID:BVi2WQ22a(3/3)調 AAS
最後に改行出すんじゃなくて最初に改行出すようにすれば良いだけでは?
一番最初の行だけは最初に出さなければ良いだけ。
バッファリングされて出力されないのが嫌なら行末でfflush()する。
607(2): (ワッチョイ aa01-A+mh) 2019/05/21(火)21:47 ID:n1jvW3Ih0(1)調 AAS
>>606
>>599-600
608: (ワッチョイ 9602-XAPB) 2019/05/21(火)22:06 ID:Y+BS98b80(4/4)調 AAS
>>607
おお。既にあった。
さっきスマホで見てて気付かなかった。
609: (ワッチョイ 1e01-Qul6) 2019/05/21(火)22:09 ID:JtLDtEYt0(1)調 AAS
>>604-607
603です。>>600の意味をちゃんとわかってませんでしたが、>>606の方のレスでわかりました。
>>600の方が安全な気がするのでそちらを検討します。
610(2): (ワッチョイ dfb9-9b2Z) 2019/05/24(金)09:00 ID:h3dkW7YJ0(1/2)調 AAS
C言語はクラスが無い。
それは実際どれくらい問題になりますか?
昔C使ってたけど、本格的な抽象的設計をやってたわけじゃなくて、
最近Java使っててそういうのをやりだしたけど、
今思い返してみるとC言語はクラスや継承や多態性が無いから
かなり厳しい言語なんじゃないかな、と思ったんです。
メジャーなカーネルがCで作られてるという事実に驚愕します。
クラス無しで大規模開発は不可能としか思えません。
それどころか、1アルゴリズムの実装でもクラスは有用だと思うんですが。
最近、NimとかRustのようなCを代替するかもしれない勢いのある言語があります。
そういう言語はかなり抽象的な設計が可能です。
そういうのと比べると、小さなデバイスドライバみたいなものはCでいいだろうけど、
大規模開発におけるCはかなり無理があるんじゃないかな?と
そうでもないものですか?
611: (アウアウエー Sa9f-eVvB) 2019/05/24(金)09:04 ID:a6wIXg41a(1)調 AAS
まあファイルがクラスと同じだし。
継承はしづらいけど、そんなもん使ったらC++でもむしろ見通し悪くなるでしょ?
612: (ワッチョイ dfa5-vAXu) 2019/05/24(金)10:11 ID:M2ZwKTAn0(1)調 AAS
最大のデバイスドライバがOSのカーネルなんじゃねえの
そしてそれがC言語の限界
613(1): (ワッチョイ dfb9-9b2Z) 2019/05/24(金)10:43 ID:h3dkW7YJ0(2/2)調 AAS
Linuxカーネルは2100万行を超えているそうなので
たぶん地球上でもっとも大規模な開発の1つです。
614: (ワッチョイ bf8c-GX6Y) 2019/05/24(金)11:21 ID:0dR+L/D60(1)調 AAS
責任ある人は気がくるっているじゃない。
615(1): (アウアウウー Saab-EYzY) 2019/05/24(金)12:25 ID:Cw+6mW4za(1/2)調 AAS
Cでもオブジェクト指向的に考えて作ることは可能。構造体へのポインタまたは情報を区別する番号などを渡してその中身に基づいて処理する関数作ればいいので。
ファイルアクセスとかは作りがそうなってるよね。
616: (ワッチョイ c7d2-Fpyl) 2019/05/24(金)12:32 ID:M3xcEept0(1)調 AAS
クラスはコンストラクタ/デストラクタは活用したけど
継承で面倒になって、ちょっと便利な関数付き構造体としてしか設計したことない。
617(1): (ブーイモ MMcb-/OyN) 2019/05/24(金)12:35 ID:C+5joBz9M(1)調 AAS
C言語ではオブジェクト指向も関数型プログラミングもできる。その下位レイヤーだから。
面倒臭いけど。
618: (ドコグロ MM9f-LXA5) 2019/05/24(金)12:50 ID:8pSuDyEhM(1/2)調 AAS
>>613
デバドラとかが山ほどあるだけでコア部分はそんなにたいしたことないよ
619: (ドコグロ MM9f-LXA5) 2019/05/24(金)12:53 ID:8pSuDyEhM(2/2)調 AAS
>>610
構造体に関数ポインタ入れたりすれば継承も多態も可能
書くのが面倒ってだけの話
モジュールを適切に分割すれば個々の開発部分はそんなにでかくならないし
620: (アウアウウー Saab-EYzY) 2019/05/24(金)12:59 ID:Cw+6mW4za(2/2)調 AAS
まあしかしC++は複雑怪奇な状態になったような感じがするのでなんか別の言語でオブジェクト指向やった方が良いような気がする。
621: (ワッチョイ c7da-YLUn) 2019/05/24(金)13:49 ID:FIKXvkBI0(1)調 AAS
Javaがとてもシンプルな言語に見えてくる
622(1): (スププ Sdff-OWKl) 2019/05/24(金)14:27 ID:YkjJvwKvd(1)調 AAS
linux kernelなんておもくそオブジェクト指向的な構造だろ
623: (ワッチョイ e701-/OyN) 2019/05/24(金)19:13 ID:E0qJKDus0(1/2)調 AAS
関係ないけどOOPが流行り始めた頃に「WindowsのUIはオブジェクト指向だ」と言ってたやつを思い出した。
624: (ワッチョイ 7f63-buEI) 2019/05/24(金)19:26 ID:omgaeJxY0(1)調 AAS
目指していた方向はそうだったと思う
625(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)20:26 ID:0N6+tWvP0(1/14)調 AAS
>>615
>Cでもオブジェクト指向的に考えて作ること
あくまでも「オブジェクト指向『的』」であることに注意すること
C ではオブジェクト指向を実現できない(断言)
626(2): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)20:27 ID:0N6+tWvP0(2/14)調 AAS
>>617
>C言語ではオブジェクト指向も関数型プログラミングもできる
C ではオブジェクト指向はできない(断言)
継承をCでどのように記述するのでしょうか?
627(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)20:27 ID:0N6+tWvP0(3/14)調 AAS
>>622
>linux kernelなんておもくそオブジェクト指向的な構造だろ
あくまでも「オブジェクト指向『的』」であってオブジェクト指向そのものではありません(断言)
628(1): (アウアウウー Saab-EYzY) 2019/05/24(金)20:41 ID:1FXcUtRQa(1)調 AAS
いやできなくはないよ。何せC++は元々はCへのコンバータだったしな。C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。
もちろんCは言語そのものがオブジェクト指向をサポートしてないから人間がそれをやろうとするととても面倒な事になるけどな。
629(3): (ワッチョイ e701-/OyN) 2019/05/24(金)20:51 ID:E0qJKDus0(2/2)調 AAS
そんなん言い始めたらアセンブラでもオブジェクト指向プログラミングできることになっちゃう。
言語としてOOPがサポートされてなきゃ認められないでしょ。
630(3): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:00 ID:0N6+tWvP0(4/14)調 AAS
>>628
>C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。
C++ から C へのトランスパイラが存在したからといって、C にてオブジェクト指向(的ではなくそのものずばり)なプログラミングができるわけではありません
C++ のコンパイラが存在するからといって機械語が OO でないのと同じです、まず、
C++ https://ideone.com/vAp2Sj
に対応する C のコードを示してください
631: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:01 ID:0N6+tWvP0(5/14)調 AAS
>>629
>言語としてOOPがサポートされてなきゃ認められないでしょ。
激しく同感いたします!
632(1): (ワッチョイ 67f6-dCWx) 2019/05/24(金)21:12 ID:ZwmHdTYl0(1/4)調 AAS
>>610
全く問題にならない
classというキーワードがなくても
コードを書く者の考え方次第でカプセル化や継承はできる
FILE構造体がその例だ
多態性がないというのは、おまえさんの認識不足で
関数ポインタでそんなものはすぐに実現できる
そういう認識不足があるからこそ
メジャーなカーネルをなぜ書けたかが理解できないのだ
633(1): (ワッチョイ 67f6-dCWx) 2019/05/24(金)21:15 ID:ZwmHdTYl0(2/4)調 AAS
>>630
対応するCのコードを示せるやつがいたら、おまえどうする?
朝8時の品川駅のホームでストリーキングでもするか?
634: (アウアウエー Sa9f-eVvB) 2019/05/24(金)21:24 ID:QPLeHwR8a(1)調 AAS
まあ継承なんてオブジェクト指向と関係ないよ
635(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:45 ID:0N6+tWvP0(6/14)調 AAS
>>632
>classというキーワードがなくても
>コードを書く者の考え方次第でカプセル化や継承はできる
C ではカプセル化はできても継承は不可能ですよ
636: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)21:46 ID:0N6+tWvP0(7/14)調 AAS
>>633
>対応するCのコードを示せるやつがいたら、おまえどうする?
あなたができないことをそんなにアピールしなくてもいいと思いますよ
637(1): (ワッチョイ e701-GX6Y) 2019/05/24(金)21:56 ID:wwZ4gkZH0(1)調 AAS
仮想関数テーブルの実装方法について語るスレはここですか?
638(1): (ワッチョイ 67f6-dCWx) 2019/05/24(金)22:01 ID:ZwmHdTYl0(3/4)調 AAS
>>635
いーや、できる
おまえさん禿本やリップマンくらい読んだか?
裸踊りを賭す自信もねえやつがいきがってんなよ
639: (ワッチョイ 67f6-dCWx) 2019/05/24(金)22:02 ID:ZwmHdTYl0(4/4)調 AAS
>>637
いいぜ
おら、来いや
640(1): 蟻人間◆T6xkBnTXz7B0 (ワッチョイ 2701-6B7C) 2019/05/24(金)22:06 ID:/xfbOr910(1/2)調 AAS
>>630
https://ideone.com/omqT5r
641(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:17 ID:0N6+tWvP0(8/14)調 AAS
>>638
ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか?
あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから
642(1): (ワッチョイ df01-LXA5) 2019/05/24(金)22:18 ID:TMKOHW7N0(1)調 AAS
>>625-627 >>629
オブジェクト指向と言う概念と実装の区別がついてないんだな
低能なプログラマーによくある行動w
例えばLinuxで言えばリダイレクトなんて言うのはもろオブジェクト指向な機能だよね
Applicatlon > xxx
ってやればxxxがファイルならApplicatlon が出力したデータをファイルに書き込むし、xxxが端末なら端末にデータを表示するし、xxxがプリンタならデータを印刷する
Applicatlonは出力先が何であるかを気にする必要はない
もちろんLinuxはC言語でこれを実現してるしより面倒だろうけど当然アセンブラで実装することも可能
643(1): (ワッチョイ e701-1x1Z) 2019/05/24(金)22:21 ID:0NhXAFL60(1/2)調 AAS
概念ならFILE構造体とそれの操作関数群
644(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:21 ID:0N6+tWvP0(9/14)調 AAS
>>640
>typedef struct C
>{
> A ThisA;
> B ThisB;
> int c;
>} C;
これは委譲であって継承ではありません。私は >>626 で「Cでは継承はできない」と主張しており、これを否定するために委譲は使えません
645(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:23 ID:0N6+tWvP0(10/14)調 AAS
>>642
それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います
646: (ワッチョイ e701-1x1Z) 2019/05/24(金)22:24 ID:0NhXAFL60(2/2)調 AAS
コンストラクタとデストラクタの機構だけは欲しいと思ったことがしばしば
647: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:24 ID:0N6+tWvP0(11/14)調 AAS
>>643
FILE は OO 的ではありますが、OO そのものではありません
OO というからには委譲とは別の継承を表現できねばなりませんが、
C では継承を表現できません
648(1): (ブーイモ MMcf-wr5r) 2019/05/24(金)22:41 ID:K6buSCwsM(1/2)調 AAS
glibとか大昔からあるじゃん…
glibがooでないならooの定義をまず示せ
649(1): (アウアウカー Sa3b-eVvB) 2019/05/24(金)22:42 ID:hUeULEjja(1/3)調 AAS
オブジェクト指向ってC++固有の概念なの?
だとすると、そりゃCで実現は無理でしょう。関係ないんだから。CとC++は。
650(3): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:44 ID:0N6+tWvP0(12/14)調 AAS
>>648
glibc++ は OO かもしれませんが glibc が OO だとは寡聞にして聞きませんね
651(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:45 ID:0N6+tWvP0(13/14)調 AAS
>>649
>オブジェクト指向ってC++固有の概念なの?
いいえ、Java も C# も OO だし、 python も ruby も OO で表現できます
652(1): (アウアウカー Sa3b-eVvB) 2019/05/24(金)22:50 ID:hUeULEjja(2/3)調 AAS
>>650
GLibだよGLib
今知らないのもどうかと思うけど、使ってみると面白いと思うよ
653(1): (アウアウカー Sa3b-eVvB) 2019/05/24(金)22:51 ID:hUeULEjja(3/3)調 AAS
>>651
いや、それだとつじつま合わないでしょ
自分の決めた道を突き進めよ
654(1): 蟻人間◆T6xkBnTXz7B0 (ワッチョイ 2701-uiLC) 2019/05/24(金)22:53 ID:/xfbOr910(2/2)調 AAS
GTKのGLibだよね。
655(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/24(金)22:54 ID:0N6+tWvP0(14/14)調 AAS
>>653
どうつじつまがあわないというのですか?説明ください
私は「OO ならば委譲と区別された継承を記述されなければならない」と主張しています
656: (ブーイモ MMcf-wr5r) 2019/05/24(金)22:55 ID:K6buSCwsM(2/2)調 AAS
>>650
glibcじゃねーよ…
gimp、inkscape、gnomeほか様々なソフトウェアで使われてる。
linuxとは無縁だったんだな
657: (ワッチョイ c7c3-OWKl) 2019/05/24(金)23:36 ID:SCqWQYPI0(1/2)調 AAS
>>629
出来るに決まっている
OO言語はオブジェクト指向プログラミングがやり易いようになっているだけでそれじゃなきゃOO出来ないというのはOOについて理解していないだけ
658(3): (ワッチョイ c7c3-OWKl) 2019/05/24(金)23:46 ID:SCqWQYPI0(2/2)調 AAS
>>644
多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ
それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる
659(1): (ワッチョイ bfba-GX6Y) 2019/05/24(金)23:58 ID:S5Q/uU3j0(1)調 AAS
>>655
CでもOOできるし、継承できるし、オーバーライドもできる。
20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。
メモリを意識したコードを書けない人には理解できないけどね。
660(1): (ワッチョイ dfb9-9b2Z) 2019/05/25(土)00:01 ID:7Hh+Cor80(1)調 AAS
C言語はABIが標準化されている、という文を見たんですが、
その標準仕様の名前は何ですか?
新しいプラットフォームがその標準仕様を満たせば
バイナリレベルあるいはソースレベルで移植性があるんでしょうか?
661(2): (ワッチョイ bfba-GX6Y) 2019/05/25(土)00:07 ID:KPhaQb+n0(1/2)調 AAS
>>654
ていうかお前、MZ級にウンコな片山博文やんけ。
>>660
標準の名前は無いんじゃないの?
とりあえず「ABI」でググれ。
662: (ワッチョイ c7c3-OWKl) 2019/05/25(土)00:11 ID:oops2jeN0(1)調 AAS
アーキテクチャ跨いでABIが統一できるわけないよね
引数の渡し方なんてアーキテクチャ変わったらそもそも使えるレジスタ変わるし
同一アーキテクチャの特定OS内ならバージョン変わってもABI互換ってのは良くあるけど
663: 蟻人間◆T6xkBnTXz7B0 (ワッチョイ 2701-uiLC) 2019/05/25(土)00:29 ID:2ZlhwbAL0(1)調 AAS
>>661
そのプライドを大切にしろよ
664: (ワッチョイ df01-LXA5) 2019/05/25(土)05:52 ID:Tic4GHY30(1/2)調 AAS
>>645
お前のOOの定義書いてくれ
俺の思うOOじゃないとか言われたらどうしようもないわなw
665(1): (ワッチョイ df79-buEI) 2019/05/25(土)05:57 ID:6KmI3UXB0(1)調 AAS
Cでオブジェクト指向プログラムなんて書くのは時間の無駄
速度が必要な部分だけCで作るのが正解
666(1): (ワッチョイ 67f6-dCWx) 2019/05/25(土)06:05 ID:6T2yG8cn0(1)調 AAS
>>641
てめえの怠慢を俺が尻拭いする筋合いはねえぜ
調べるところまで教えてやったんだ
自分で調べる気がねえなら不勉強のまま取り残されろ
667: (ドコグロ MM9f-LXA5) 2019/05/25(土)07:19 ID:DOpjF4HUM(1)調 AAS
>>665
> Cでオブジェクト指向プログラムなんて書くのは時間の無駄
そう言うこと
ただ時間がかかると言うのとできるできないの話は別
なのでお前のレスのほうが時間の無駄w
668(2): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)15:51 ID:jppBZDTS0(1/8)調 AAS
>>658
>多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ
C では構造体のメンバの順番をプログラムから指定することはできたのでしょうか?
C コンパイラはアラインメントを考慮して最適化をはかり構造体のメンバを、プログラマの記述から適宜入れ替えていもいいのでは?
となると一つめのメンバにベースクラスのインスタンスを書いても、コンパイラに入れ替えられてしまっては無意味なのでは?
669(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)15:52 ID:jppBZDTS0(2/8)調 AAS
>>659
>CでもOOできるし、継承できるし、オーバーライドもできる。
できないとおもいますよ、できるというのなら >>630 を C で記述してみてください
>20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。
出典を明記ください
670(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)15:53 ID:jppBZDTS0(3/8)調 AAS
>>666
>てめえの怠慢を俺が尻拭いする筋合いはねえぜ
あなたは私の怠慢を主張するのと同様の筋で、私はあなたの欺瞞を主張します
出典元や引用を正確にできないのであれば、あなたは嘘をついていると判断されてもしかたがないと思います
671: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)15:55 ID:jppBZDTS0(4/8)調 AAS
>>661
片山先生は私とは比較にならないほど生産性の高いプログラマですよ
672: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)16:03 ID:jppBZDTS0(5/8)調 AAS
>>652
はじめて知りました、>>650 は勘違いした内容でした、すみません
ご紹介ありがとうございます。今試しているところです!
673(1): (ワッチョイ df01-LXA5) 2019/05/25(土)16:17 ID:Tic4GHY30(2/2)調 AAS
>>668
真面目な話、規格書読んでこい
ツッコミどころが頓珍漢すぎる
674(2): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)17:02 ID:jppBZDTS0(6/8)調 AAS
>>673
コメントありがとうございます。確かに >>668 には誤りが含まれていました
ISO/IEC 9899:1999
6.7.2.1.5
As discussed in 6.2.5, a structure is a type consisting of a sequence of members, whose
storage is allocated in an ordered sequence,
JIS X3010:2003
構造体は,メンバの列から成る型とし,メンバの記憶域は,並べられた順に割り付ける(6.2.5参照)。
しかし、この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます
よって、>>658
>多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書く
>それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる
構造体の先頭にパディングがあった場合は、この記述は正しくないのではないでしょうか。
675(1): ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)17:37 ID:jppBZDTS0(7/8)調 AAS
>>674
よくよく考えると、私の「この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます」もかなり疑わしい、
パディングというものは、一つのメンバがあって、それに対してもう一つのメンバを置くときにパディングを置くものであって、最初からパディングを置く必然性がないですね
struct S {
int a;
} b;
のとき
&b = &(b.a)
は保障されている、時間がたつにつれてそんな気がどんどんしてきました…
>>658 を認め、同時に単一継承であれば C で OO と継承を表現できることを認めます
676: ◆QZaw55cn4c (ワッチョイ df47-SwLn) 2019/05/25(土)18:11 ID:jppBZDTS0(8/8)調 AAS
>>674
> a type consisting of a sequence of members, whose storage is allocated …
この is にも惑わされてしまいました
これは
a type consisting of a sequence of members, each of which is allocated about storage in an ordered sequence
とか
a type consisting of a sequence of members, each of which's storage is allocated in an ordered sequence
くらいに解釈するべきなんですね
検討する機会をいただきありがとうございました
677: (ブーイモ MMcb-wr5r) 2019/05/25(土)21:04 ID:DDy3bloZM(1)調 AAS
>>675
絶対許さんぞおおおお
678(1): (アウアウエー Sa9f-eVvB) 2019/05/25(土)21:07 ID:aM9QB8YDa(1)調 AAS
オブジェクト指向って抽象化が目的なのに、メモリ配置とか気にするのは馬鹿みたいだよな
679: (ワッチョイ e701-GX6Y) 2019/05/25(土)21:23 ID:cjrLAMgS0(1)調 AAS
MicrosoftのCOMはほとんど全てのコンパイラが構造体のメモリ配列を同じ様にするってのを利用してるんだっけ?
680: (ドコグロ MMeb-LXA5) 2019/05/25(土)22:13 ID:UN9uDEfaM(1)調 AAS
>>678
ここにも概念と実装の区別がついてないバカが…w
681(3): (ワッチョイ bfba-GX6Y) 2019/05/25(土)23:25 ID:KPhaQb+n0(2/2)調 AAS
>>669
C言語でオブジェクト指向を表現する (クラス、継承)
https://qiita.com/qiita_kuru/items/8f3441bce9b2f53d1d62
この辺でも読んどけ。
「何故できるか」まで言及したもっといい文献はあるがカスには教えない。
俺は「せざるを得ない」状況だったのでCでOOしたが、ネイティブでOOできるならそれに越したことはない。
あ、同じ板でハッシュが一致してるのでお前は蟻。
682: (アウアウエー Sa9f-eVvB) 2019/05/26(日)01:24 ID:zv+FEFKTa(1)調 AAS
>>681
またおまえか
683(1): (ワッチョイ 67f6-dCWx) 2019/05/26(日)08:36 ID:o+/j3IaP0(1/2)調 AAS
>>670
は? 俺は主張なんざしてねえぜ
事実をありのまま指摘しただけだ
何勘違いしてやがる
というか勘違いということにせねば立場がねえってかw
684: (ワッチョイ e7dc-dCWx) 2019/05/26(日)08:56 ID:7tI1cTYc0(1)調 AAS
もうこんなとこで喧嘩しても勝敗つかないんだからやめろw
仲良くできねえのかお前らは
685: (ワッチョイ df2c-o9SV) 2019/05/26(日)12:29 ID:lzKtO2WM0(1)調 AAS
でも冷静になって考えてみろ
単細胞時代から何億年と喧嘩してきた結果今の人間がいる訳だから喧嘩をやめてしまったらそれは果たして生物と言えるのか
逆に言えばAIが人知を超える時
人間は機械に滅ぼされ地球から人間はいなくなっているという事
つまり今何をすべきかと言うと人間は思考をやめアホになるべきである
そうアホの坂田こそ未来の救世主ネオなのである
686(2): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)15:17 ID:CpBTYp0n0(1/10)調 AAS
>>681
そのご紹介のリンク先は、内容について、はっきりいって詰めが甘いです
すなわち、継承と委譲を区別できていません
そんな中途半端な理解で quita に掲載するとか、玉か石かどちらかといえば、石の部類でしょう、全然参考になりませんでした
そんな中途半端な内容の記事を掲載するあなたも同様と判断いたします
687: ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)15:19 ID:CpBTYp0n0(2/10)調 AAS
>>683
事実かどうかは、主観的か客観的か、に依存すると思いますが、
相対論においてはすべての事象について純客観的などありえない…?
ので、?より、あなたは主観を主張しているものと私は理解します
688(1): (ワッチョイ df33-Fpyl) 2019/05/26(日)15:46 ID:aNhG7Lwu0(1/4)調 AAS
>>686
「継承」に必要な操作一式を委譲に基づいて提供できているなら継承できていると思うんだけど、
言語サポートを伴って暗黙的に機能しない限り「継承」と呼ぶべきではない、ということなの?
そこで明確に区別することにあんまり意義が見出せないんだけど、その定義どっか出典示せる?
689(2): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)15:52 ID:CpBTYp0n0(3/10)調 AAS
>>688
委譲による実装で継承を実現できているのなら、それは継承(の一形態)である、…? という主張ですね
?は私にも理解できますが、委譲はダイヤモンド継承を回避できない欠点があるのでは、と考えています
「ダイヤモンド継承」については C++ の書籍には大概載っているかと、具体的な書籍名は探しておきます
690(1): (ワッチョイ df59-eVvB) 2019/05/26(日)16:00 ID:Jdhtsrqd0(1/2)調 AAS
まあ継承なんてオブジェクト指向と関係ないからね
691(1): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)16:02 ID:CpBTYp0n0(4/10)調 AAS
>>690
それは初耳です
Object Oriented に継承は憑き物だと思っていました、継承のない OO って存在するのですか?それは例えばなにですか?
692(2): (ワッチョイ df33-Fpyl) 2019/05/26(日)16:08 ID:aNhG7Lwu0(2/4)調 AAS
>>689
ちょっと何言ってるかわからないな。
ダイアモンド継承の問題を「継承」で回避しているが委譲では回避できないであろう例を挙げてくれたら考える。
明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。
693(1): (ワッチョイ df59-eVvB) 2019/05/26(日)16:22 ID:Jdhtsrqd0(2/2)調 AAS
>>691
なにって、言語を知りたいということ?
上下前次1-新書関写板覧索設栞歴
あと 309 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s