[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
853: 2017/07/04(火)23:43 ID:olJiM2Cb(5/5) AAS
どの程度の初心者かわからないだろ
C#と比べてるってことは既にC#をそこそこマスターしているかもしれないだろ
その状態でC++に手を出そうとしていたとしたら、どうだ?
C#とC++の違いなどを書いたほうが良いだろ
854: 2017/07/04(火)23:46 ID:tvZqc0j8(1) AAS
>>850
初心者だからこそ、上っ面の文法の違いだけで捉えて、こうすればだいたい同じとか説明する前に、
前提としてメモリ管理の考え方が違うことを理解してもらうのは重要だろう。
855: 2017/07/04(火)23:47 ID:AVhuZxl1(4/4) AAS
違うものは違う
856(2): 2017/07/04(火)23:48 ID:VwPftttd(2/3) AAS
もういいよ、まとめると
C++ではインスタンス生成(アドレスの決定)は二種類のやり方がある
A a;
A* pa = new A();
前者はスタックのアドレスが割り当てられ、後者は通常はヒープのアドレスが割り当てられる。
前者はスコープが寿命で、後者はdelete pa;されるまでが寿命。
C#ではインスタンス生成の方法は値型、参照型でそれぞれ一種類ずつしかなく、
A a; //struct A
B b = new B(); //class B
前者はスタックのアドレスが割り当てられ、後者はヒープのアドレスが割り当てられる。
省3
857: 2017/07/04(火)23:50 ID:TrkY+sIz(2/2) AAS
C# の後者の寿命は? delete pa は C++ だよね
858: 2017/07/04(火)23:53 ID:VwPftttd(3/3) AAS
>>856
おっと、間違えた
C#の後者の寿命はGCに回収されるまででした
859: 2017/07/05(水)00:46 ID:EyHtcvE8(1) AAS
>>856
ご苦労さん
何故この話題がここまで伸びたんだろ
860(1): 2017/07/05(水)22:56 ID:UhWlQCq1(1) AAS
異なる考えの言語同士であるため対応が自明でないという事実を無視して
自分の考える「同じ意味」の解釈を押し付けるからに相違ない
>C#ではインスタンス生成の方法は値型、参照型でそれぞれ一種類ずつしかなく、
>A a; //struct A
なるほどこうやって言語仕様を確認せず想像をたれ流すので世の中が嘘だらけになるのだな
861(1): 2017/07/05(水)23:29 ID:0KIeSgEp(1) AAS
>>860
ん、C#のほうはそれであってるだろ
StringとかDateTimeみたいな一部の例外を除けば
862(1): 2017/07/06(木)01:22 ID:AOJFjP+S(1) AAS
>異なる考えの言語同士であるため対応が自明でないという事実を無視して
>自分の考える「同じ意味」の解釈を押し付けるからに相違ない
ん?だからそれに基づいてほとんどの人は
「違う意味だよ〜」って言ってたんじゃなかったの?
一部の人が「同じような意味だよ〜」って言ってただけで
それに反論する流れだったでしょ
だから「同じ意味」の解釈の押し付け合いはしてなくて
同じ意味だよ vs 違う意味だよ
だったと思うけど
863: 2017/07/06(木)05:15 ID:5a/RGiY/(1) AAS
わざわざ堅苦しい言葉選んで俺偉いアピール
864: 2017/07/06(木)05:29 ID:T7F4pxe5(1) AAS
同じ様な意味と同じ意味は違う
さらっと言葉をすり替えるなよ
まったく卑怯な奴よの
(つーか同じ様な意味とも言っていない)
865: 2017/07/06(木)08:09 ID:TSgBvSRK(1/3) AAS
>>862
>だから「同じ意味」の解釈の押し付け合いはしてなく
「同じ意味」の基準について合意していないのに「ここが違うから別」とだけ言うのは「同じ意味」の解釈の押し付けに他ならないと思うのだが、
もう少し日本語の字面でなく意味を理解した方がよいのではないか
>「違う意味だよ〜」って言ってたんじゃなかったの?
→Yes
>同じ意味だよ vs 違う意味だよだった
→Yes
866: 2017/07/06(木)08:11 ID:rcg+ZZ7N(1) AAS
違うものは違う
867(1): 2017/07/06(木)08:12 ID:TSgBvSRK(2/3) AAS
>>861
合っているかと訊かれれば合っていないので、言語仕様を読むか当該のスレッドで訊くのが良いのでは
あとStringやDateTimeの例外というのが何なのかよくわからなかった
868: 2017/07/06(木)08:18 ID:QfwLuwwY(1) AAS
>>867
合ってるから消えろ
外部リンク:docs.microsoft.com
869: 2017/07/06(木)14:54 ID:m/Ia1fy1(1) AAS
まだやってんのかよ
おまいらのこだわりはスゲェな
870(1): 2017/07/06(木)22:06 ID:TSgBvSRK(3/3) AAS
リンク先を見て思ったのだが
こだわりじゃなくて罵られることに喜びを覚えるマゾなのではないかと言う気がした
871: 2017/07/06(木)22:08 ID:JPWXM8i2(1) AAS
>>870
正しく指摘できないのならレスしないほうがいい
あなたの思ういちばんすこいC#の仕様の世界で生き続けてくだはい
アーメン
872: 2017/07/07(金)11:58 ID:C1hAccX9(1) AAS
俺は、プログラミングなんて存在しない世界で生きたい
873: 2017/07/07(金)12:21 ID:2bQkb9bH(1) AAS
生まれてくるのが100年くらい遅かったようだな
874: 2017/07/07(金)12:21 ID:xvg52mfm(1) AAS
プログラマ辞めれば良いだけやん。
875(1): 2017/07/07(金)13:29 ID:1UwaMcEr(1/2) AAS
c++
英語を読める
btcをトレードしたことがある
仮想通貨の開発に参加してみたい方
レスをお願いします
876(1): 2017/07/07(金)15:01 ID:u5D8E4qs(1) AAS
>>875
ノ
んで?どうすりゃええの
877: 2017/07/07(金)16:03 ID:1UwaMcEr(2/2) AAS
>>876
お返事ありがとうございます
通貨名
raiblocks
simple
instant
fees 0(送金手数料がかからない)
web
外部リンク:raiblockscommunity.net
slack
省3
878: 2017/07/08(土)21:39 ID:dFvfrYOE(1) AAS
プログラミングなんて底辺ドカタの仕事
そのうちAIがやれるようになる
879: 2017/07/08(土)22:33 ID:lbAgDi9M(1) AAS
アドバイスさんくす
880(5): 2017/07/09(日)16:06 ID:EeQkMvgZ(1/4) AAS
ポインタそのものにオブジェクトってできるんでしょうか?
例えば、配列arrayのアドレスをポインタpで、ポインタpのアドレスをポインタpのポインタppで調べたんですが、
int array[3];
int *p = array;
int **pp = &p;
for(i = 0; i < 3; i++)
{
printf("&array[%d] : %d : %d\n", i, &array[i]);
}
&array[0] : 2293472
省11
881(2): ◆QZaw55cn4c 2017/07/09(日)16:13 ID:VF1qtZ3L(1) AAS
>>880
その出力を一挙に得られるプログラムを示せ,アドレスはプログラムの実行ごとに変わる可能性がある
882(1): 2017/07/09(日)16:20 ID:v/7piv3Y(1) AAS
>>880
pとarrayは異なるオブジェクトだから確認方法が間違ってる
883(1): 2017/07/09(日)16:25 ID:3Luqddjj(1/3) AAS
一つのポンタを複数のオブジェなんて当たり前
int z;
int * p = &z;
int * p2 = p;
int * p3 = p2;
884: 2017/07/09(日)16:43 ID:EeQkMvgZ(2/4) AAS
>>881 これでいいでしょうか?
int i;
int array[5];
int *p = array;
int **pp = &p;
printf("array : %d\n", array);
for(i = 0; i < 5; i++) {
printf("&array[%d] : %d\n", i, &array[i]);
}
printf("p : %d\n", p);
省11
885(1): 2017/07/09(日)16:44 ID:3Luqddjj(2/3) AAS
何がわからんのや。ようわかるやんけ
アドレス : オブジェクト : 値 : オブジェクトの型
2293464 : pp : 2293468 : int**型
2293468 : p : 2293472 : int*型
2293472 : array[0] : ? : int型
2293476 : array[1] : ? : int型
2293480 : array[2] : ? : int型
886(1): 2017/07/09(日)16:51 ID:EeQkMvgZ(3/4) AAS
>>885
つまりポインタpは配列を参照してもp自体は配列型ではなくて単体(?)のオブジェクトだということでしょうか?
887(1): 2017/07/09(日)16:56 ID:3Luqddjj(3/3) AAS
>>886
もちろんや。
pはarrayとは別のアドレス2293468にある
int*型の独立したオブジェやで
888: 2017/07/09(日)17:01 ID:EeQkMvgZ(4/4) AAS
>>887
ありがとうございます!5時間以上つまってたのが一気にクリアになりました!
889(1): 2017/07/09(日)17:16 ID:Uu/MlKNR(1) AAS
>>880
> &pp[0] : 2293468
これはpのアドレス
> &pp[1] : 2293472
> &pp[2] : 2293476
pp[1], pp[2]は存在しないからアクセスしちゃダメ
たぶん
2293464: pp
2293468: p
2293472: array[0]
省3
890(1): 2017/07/09(日)22:31 ID:WeAgIUgc(1) AAS
>>889
意味のある値が取れないだけで
別にアクセスしても問題ねーだろ
891: 2017/07/09(日)23:28 ID:1po+7Ikw(1) AAS
>>890
正しく割り当てられたオブジェクトのアドレス以外を指しているのなら、アクセスしてはいけないだろう。
889の例ではたまたまpp[1]が表す位置がスタック上の有効なアドレスでアラインメントも問題無いだろうけど、
例えばppがスタックやヒープの末端のオブジェクトを指していたら、pp[1]にアクセスしたらNGということもある。
892: 2017/07/10(月)06:50 ID:ZgtWUD/x(1/3) AAS
中身にアクセスしてなくてただのアドレス計算だぞ
C/C++言語的にはNGだけど、それで例外が発生するとはなかなか考えにくい
もしかしたらビルド時に警告を出してくれるかも
893: 2017/07/10(月)06:54 ID:t9ouoliu(1) AAS
アドレス計算自体はOKだと思うよ。
894(4): 名無しさん@そうだ選挙に行こう! Go to vote! 2017/07/10(月)07:04 ID:Ols/UzwR(1) AAS
配列ならば確保した数+1までのアドレス計算はやっても大丈夫&整合がとれる位置に配置されている
895: 名無しさん@そうだ選挙に行こう! Go to vote! 2017/07/10(月)07:05 ID:ZgtWUD/x(2/3) AAS
無効エリアのアドレス計算
値不定か動作不定かどっちだか忘れた
これらをOKと呼ぶならOKなんでしょう
896: 名無しさん@そうだ選挙に行こう! Go to vote! 2017/07/10(月)07:13 ID:ZgtWUD/x(3/3) AAS
>>894
-1も有効だとうれしい事があるけど、-1はダメなんだよね
897(1): 2017/07/10(月)22:27 ID:WIOZS2V0(1) AAS
>>894
つまり式「&pp[1]」は大丈夫でないと?
898(1): 2017/07/11(火)13:12 ID:eWIFW1BW(1) AAS
ppは配列じゃないだろ
899(1): 2017/07/11(火)18:17 ID:L5b0rMHK(1) AAS
これがアスペいうやつだな
配列でないオブジェクトも要素数1の配列として考える仕様→よくご存知で
pは配列じゃないからな→わかる
ppは配列じゃないからな→頭悪いな
ppは配列じゃないだろ→アスペ
900: 2017/07/11(火)20:17 ID:gS+YojZ9(1/2) AAS
ん?まったくよくわからんのだが、だれか解説して
>配列でないオブジェクトも要素数1の配列として考える仕様
↑まずこれがよくわからない
配列じゃないオブジェクトといえば、例えばint i;などは配列としては扱えないよね
で、下二行の意味も分からない
901(1): 2017/07/11(火)22:08 ID:qjau/h5c(1/3) AAS
配列かどうかは関係なく、オブジェクトの後ろのアドレスは計算も出来るし比較も出来る
902: 2017/07/11(火)22:10 ID:qjau/h5c(2/3) AAS
>>894は配列じゃない場合に関しては何も言ってないから間違いではないが
わざわざ配列と書いてるので配列以外は違うと思ったかわからなかったか
だろう
903: 2017/07/11(火)22:14 ID:qjau/h5c(3/3) AAS
>>897
「つまり」が意味不明
>>894は配列じゃない場合には何も言ってない
「大丈夫でない」は正しい
>>898
配列じゃないから何?
>>899
実際には配列ではない
904: 2017/07/11(火)22:28 ID:gS+YojZ9(2/2) AAS
いや、それは俺も思ったんだが
ppが配列じゃないのは当たり前なんだが(てかポインタだし)
おそらくはそんなことは問うてないって言いたいんだと思う
つまり、ppが指している先が何であるかが問題であるから
配列か配列じゃないかを問うべきはppではなくppの指している先である「p」であろうと
同じことをもう一度言うけど
pp[1]としたとき問題になるのはppの指してる先がどうなっているかで
今回の場合はそれは「p」であるから
正しくは、「ppの指してる先のpは配列じゃないだろ」って言うべきっていう主張かと
905: 2017/07/11(火)23:00 ID:634mVLA8(1) AAS
>>901
なら&pp[1]も大丈夫なんじゃね?
906(1): 2017/07/12(水)07:01 ID:Mf+sZV2C(1) AAS
pp[1]の時点で動作不定
正しく動かない環境はもしかしたら存在しないかもしれないけど
907(2): ◆QZaw55cn4c 2017/07/12(水)07:26 ID:9q9UgJkW(1) AAS
>>880
ん、最初にもどってメッセージを書くとすれば、こうなるかな
>ポインタそのものにオブジェクトってできるんでしょうか?
私が意味を取り違えているかもしれないが、「できない」
ポインタを取得したからといって、オブジェクトが生えてくることはない
あくまで、先にオブジェクトを確保した上で、それに対してポインタを設定する手順をとる
>例えば、配列arrayのアドレスをポインタpで、ポインタpのアドレスをポインタpのポインタppで調べたんですが、
array を確保しているので、p は array 確保分(p 〜 p + 3)だけプログラムとして意味がある。
pp は p 一個分だけ意味がある。すなわち *pp = p、でも pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない
&pp[1] と書くとなにがしかのアドレスを生成するが、それは使えない
省2
908: 2017/07/12(水)08:20 ID:SNfdy8To(1/3) AAS
>>906
>pp[1]の時点で動作不定
ちなみにそれを規定する規格の記述はどこ?
Cでは明確に禁止されているようだがC++では見つけられなかった
909: 2017/07/12(水)09:01 ID:6a7v2dDL(1/2) AAS
外部リンク:www.google.com
910: 2017/07/12(水)09:10 ID:6a7v2dDL(2/2) AAS
外部リンク:www.google.com
911: 2017/07/12(水)13:20 ID:ahqaJGrL(1) AAS
>>907
まとめとしてはそれでいいし否定するわけじゃないけど、若干気になるのは
1.ポインタ自身もポインタというオブジェクトじゃないのか?
2.末尾+1のアドレス(を指すポインタ)はデリファレンスできないけど、大小比較には使えるのでは
912(2): 2017/07/12(水)13:41 ID:uqOuLEsE(1/3) AAS
そんで俺はちょっと思ったんだけど
Cはポインタを配列のように扱えるのが便利だなぁと
逆に配列名を参照したらポインタ値になるし
あと他、関数ポインタを普通の関数のように扱えたり
逆に関数名を参照したらポインタ値になったり
意味の上で別解釈しようがないからそれでいいだろ、的な
二つに共通しているのは
(1)参照しても意味のある値が得られなそうなシンボルは自動的にポインタ値に成り下がってもらおう
(2)その上でポインタに対していろいろな演算 ()[] が出来るようにしておこう
というもので、これでシームレスになるしタイプも減るから便利だろう、と
省15
913(2): 2017/07/12(水)13:42 ID:uqOuLEsE(2/3) AAS
気まぐれか、意図的か、歴史的事情か、生い立ちに由来するものか、知らんが、そうなっている
だが実際これが大当たりで、もしそうじゃなかったらC++が全く成り立ってこない
C++のクラスはCの構造体を拡張したものだが、オブジェクトが勝手にポインタに成り下がる仕様だと
代入したり、関数のreturnで値として返したりができない
となれば独自のクラスを定義して、まるで基本型のように振舞わせたり、メソッドチェーンをしたりが出来ない
もしやるとしたらnewして返すしかないので、GCが無いとどうにもならなかっただろう
(実際C++とCの配列は相性が悪く、std::vectorかstd::arrayを使わないと上手くいかない場合も多い
ポインタ相当に勝手に成り下がってしまうので代入ができない)
ただ、このことが本当に良かった事なのかどうなのかは分からない
GCは有ったほうが良かったかもしれないし、C++の代入やコピーコンストラクタに関する話題は後を絶たない
省4
914(2): 2017/07/12(水)13:43 ID:uqOuLEsE(3/3) AAS
よくよく考えてみればなかなかに奇妙
まず常人が普通に考えたら、配列や関数名を参照したらポインタ値が得られることにしようっていう発想がない
プログラマは基本的に几帳面で、整合性を気にする生き物だから
ポインタ値は「&」を付けたら得られることにしよう、と決めたのだから
&arrayとか&funcとか書かせたくなるのが普通だろう
そして(*array_ptr)[1]とか(*func_ptr)()とか書かせたくなるものだろう
ところがCは、レジスタに乗らないもの、演算できないもの、を
勝手にポインタと同等に格下げするというルールを設けたうえで
そのポインタに対して各種演算子を定義することで整合性を保ちつつタイプ数を減らすという
ウルトラCをやってのけた
省12
915(1): 2017/07/12(水)13:48 ID:vq82ZnF5(1) AAS
3行で(´・ω・`)
916: 2017/07/12(水)17:58 ID:SNfdy8To(2/3) AAS
駄レスの関係無いリンク先をまじまじと読んでしまった
日本語でレスが書かれていない時点で読む価値が無いと判断すべきだった
917: 2017/07/12(水)18:07 ID:SNfdy8To(3/3) AAS
>>915
「初期のK&Rが至高と考えるボクは
構造体がコピーできる仕様にハンタイです」
918(1): 2017/07/12(水)18:19 ID:Oma/x2r0(1/2) AAS
ユーザーヘッダーファイルを作って
#include<stdio.h>
#include<math.h>
#define PI 3.14
double r;
void nyuuryoku(void) {
printf("半径を入力してください。\n");
scanf("%fl", &r);
printf("%f\n", r);
return;
省7
919: 2017/07/12(水)18:34 ID:+I30gFZ0(1/3) AAS
void nyuuryoku(void) {
char buf[256];
printf("半径を入力してください。\n");
if(NULL==fgets(buf,sizeof(buf),stdin)){
printf("ちゃんと入力しろやボケ\n");
return;
}
sscanf(buf,"%fl", &r);
printf("%f\n", r);
return;
省1
920: 2017/07/12(水)18:44 ID:FRCEttse(1) AAS
>>918
× scanf("%fl", &r);
○ scanf("%lf", &r);
921: 2017/07/12(水)18:45 ID:+I30gFZ0(2/3) AAS
%lfちゃうか?
922: 2017/07/12(水)18:46 ID:+I30gFZ0(3/3) AAS
失礼しますた
923: 2017/07/12(水)18:49 ID:Oma/x2r0(2/2) AAS
oh....
コンパイラも見逃してくれてたからそんなミスとは思いませんでした(´エ`;)
ありがとうございました
924: 2017/07/12(水)19:24 ID:iSKiMIM1(1) AAS
-Wallつけるか、clang使え
925: 2017/07/12(水)21:38 ID:Q4X+sAyq(1) AAS
>>912-914
なんか色々勘違いしてるしどうでもいいから続きはチラウラで頼むわ
926: 2017/07/12(水)23:05 ID:2e79StFo(1) AAS
最近のチラシは両面印刷で困る
927(1): 2017/07/13(木)00:31 ID:/oMuxl/G(1/2) AAS
>>907
>pp[1]= *(pp + 1) は確保していない領域を指すのでこの表現は使ってはいけない
Cの規格をよく読み直したらそうでもなかった
928: 2017/07/13(木)01:06 ID:+2MHjXyv(1) AAS
>>912-914は基礎的なところで間違った理解をしていると
そのうえに乗っかるすべてのものについて間違った理解をすることしかできなくなるという見本のようだ
929(1): ◆QZaw55cn4c 2017/07/13(木)06:27 ID:NDMOLt7F(1) AAS
>>927
>>880
int **pp = &p;
でpp[1] は書いちゃだめだろう?
930(1): 2017/07/13(木)07:12 ID:/oMuxl/G(2/2) AAS
>929
その書いちゃダメを規定する6.5.6p8には「that is evaluated」という条件がある
evaluateはメモリアクセスの有無と関係無く基本的に全て行われるはずだが
6.5.3.2p3の例外既定により該当しないばかりか「&*」が省かれるとある
931: ◆QZaw55cn4c 2017/07/13(木)08:39 ID:045lcfaT(1) AAS
>>930
シンタックスではなくセマンティクスというわけですか‥ありがとう
932(2): 2017/07/13(木)18:16 ID:PDgj9Ebq(1/2) AAS
#include<stdio.h>
#include<string.h>
#define NUM 10
int main(void) {
int length;
char name[NUM * 2 + 1];
char family_name[NUM + 1];
char first_name[NUM + 1];
printf("姓を入力してください\n");
scanf("%s", family_name);
省11
933: 2017/07/13(木)18:29 ID:lX8cJUTX(1/4) AAS
笑われてんじゃね?
934: 2017/07/13(木)18:30 ID:lX8cJUTX(2/4) AAS
マヂレスすると、nameが不定
935: 2017/07/13(木)18:34 ID:a0isPZOF(1/2) AAS
>>932
char name[NUM * 2 + 1] = {0};
936: 2017/07/13(木)18:37 ID:PDgj9Ebq(2/2) AAS
ありがとうございました
937(1): 2017/07/13(木)19:34 ID:b1PvI/zl(1) AAS
どうでもいいけど、
char name[NUM * 2 + 1] = "";
普通こうじゃね?
char name[NUM * 2 + 1] = {'??0'};
これでも良い
コンパイル結果はたぶん全部同じだけど
938: 2017/07/13(木)20:27 ID:bV5zFMan(1) AAS
>>932
俺のところで試してみたらフフフノフフフになった
939: 2017/07/13(木)20:43 ID:lX8cJUTX(3/4) AAS
Visual Studio のデバッグビルドだと、不定メモリをCCで埋める
だからこれに対応する'フ'が表示される
なぜ途中が'ノ'になるかはわからん
strcatではCCの後の0を探してその後に文字列をコピーするから、0の位置によっては例外が発生したり動作がおかしくなったりするかも
940(1): 2017/07/13(木)21:06 ID:a0isPZOF(2/2) AAS
>>937
= {'\0'};のタイプミスだよね?
941: 2017/07/13(木)21:23 ID:lX8cJUTX(4/4) AAS
>>940
タイプミスじゃなくて文字化けした
スマホから見ると、? が◆の中に書かれた文字になってる
942(1): 2017/07/13(木)23:03 ID:xdHlDIka(1) AAS
プログラム終了にexit 0とreturn 0がどう違いますか?
943: はちみつ餃子 ◆8X2XSCHEME 2017/07/13(木)23:59 ID:anRp6w5D(1) AAS
>>942
違わない。
main 内の return は exit と同じ。
944: 2017/07/14(金)19:19 ID:TW7O0pB9(1/2) AAS
というタワゴトで他人を陥れるのであった
945(1): 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)19:26 ID:RoIBY40S(1/8) AAS
exitは死のトラクターが働かない
946: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)19:32 ID:RoIBY40S(2/8) AAS
異常終了以外でexitを使うヤツは素人
947(3): 2017/07/14(金)20:20 ID:8ghhANnS(1) AAS
えっ
mainのreturnでint値返すのはexitをその返り値で呼ぶのと全く等価でしょ?
少なくとも現行のC,C++規格では等価と書いてあるけど現実の実装ではそうなってないってこと?
948: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)20:52 ID:RoIBY40S(3/8) AAS
#include <iostream>
#include <cstdlib>
struct A {
~A() {
std::cout << "OK" << std::endl;
}
};
int main(void) {
A a;
std::exit(-1);
省1
949: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)20:55 ID:RoIBY40S(4/8) AAS
>>947
どこに書いてあったか? 苦情入れるぞ。
950: 2017/07/14(金)21:04 ID:TW7O0pB9(2/2) AAS
今日の>>945は健常者
後始末される例外ケースについて触れていたら完璧だった
951: 2017/07/14(金)21:06 ID:VdC9hBdZ(1) AAS
atexit で後始末回収機構走らないの?
952: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/14(金)21:39 ID:RoIBY40S(5/8) AAS
>>947
どこに書いてあった?
上下前次1-新書関写板覧索設栞歴
あと 50 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s