C++相談室 part138

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd9f-fGne)
垢版 |
2018/08/05(日) 18:02:36.57ID:DigzqJtZd
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part137
http://mevius.5ch.net/test/read.cgi/tech/1531558382/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1530384293/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2019/09/28(土) 16:05:06.02ID:CrZkyiYlM
こういうケースの話だとは思うけど
struct A;
class A
{
int a;
};

コンパイラがどう解釈するかは決まってるのかなこれ
2019/09/28(土) 16:07:59.85ID:YjLwj0vT0
エラー出すんじゃないの?
2019/09/28(土) 16:38:02.11ID:E6lKnilk0
c++17のfilesystemで、windowsの「マイドキュメント」とか展開するときってどうやるん?
自分は、日和ってWindowsの関数使ったんだけど。
2019/09/28(土) 17:06:13.76ID:xM8alBMg0
>>459
リンクって何やる処理かご存知?
2019/09/28(土) 18:27:19.82ID:E6lKnilk0
C++のclassとstructの違いはデフォルトのアクセス権が、
class : private
struct : public
ということでしかなくて、アクセス権を追加するのは両方できる。
さらに継承もできる。
2019/09/28(土) 18:44:36.11ID:dulQ4DqV0
継承の時デフォルトがpublicかprivateかもあったような?
2019/09/28(土) 18:50:19.34ID:E6lKnilk0
>>466
それは、クラスはprivateで、構造体はpublicで継承されたと思う。基本値として。
2019/09/28(土) 18:53:35.09ID:X/zAGzhO0
>>461
決まっている
規格上は宣言時structだろうがclassだろうが完全に同じ扱い

msvcは同一コンパイル単位では警告出してくるし、別れているとマングリングが変わるせいで引数にポインタや参照が含まれる関数などがある場合、linkが出来なくなる
2019/09/28(土) 19:44:13.97ID:atv/D1Wn0
classで宣言したものを、
わざわざstructで定義する必要性って
どんな時に出てくるんだ?

関数の仮引数を[]で宣言して
わざわざ*で定義する必要性なら
まあ出てくることもあるが
2019/09/28(土) 19:51:09.64ID:8mEfdn9E0
>>469
規格知ってる俺スゲーしたいときだろ。
話聞く限りVCの方がまともで、C++の仕様もそちらに合わせるべきだと思うが。
2019/09/28(土) 20:23:29.91ID:LuoDMBWx0
アンチMSにとっては挙動が他と少しでも違えば気に入らないんだろうさ
2019/09/28(土) 21:37:11.39ID:lqPuvWRw0
>>464
>>459」のようなことが間違って起きないようにするためにリンク段階でリンカ
が気付くように、わざと *.obj, *.lib ファイルレベルでのマングリング名
を struct と class で変えてるのではないか。
2019/09/28(土) 21:47:31.84ID:X/zAGzhO0
>>472
そんなことが起こるわけ無いだろ
宣言だけで出来るのは中身関係ないポインタや参照の受け渡し

まあstd::hashやstd::allocatorの特殊化してみればいい
2019/09/28(土) 22:00:22.50ID:8mEfdn9E0
>>473
そういう問題ではなくて、
静的言語のメリットは、プログラマの明確な間違い=タイポや型違いをコンパイル時に落とせる事でもあるだろ。
structとclassを間違えているのならコンパイルエラーにすべき、というのがお前以外の他全員だと思うが。

そういうどうでもいいところにこだわりすぎてるから上達してないのだと思うぞ。
2019/09/28(土) 22:02:55.72ID:E6lKnilk0
勝手に総意を語らないでください。

structとclassは同じ文脈で使われることもそれなりにあるので、
どう判断したら文脈的に正しいと思いますか?
2019/09/28(土) 22:12:35.78ID:8mEfdn9E0
>>475
まあお前の意見が違うのは分かった。
普通の人は、VCの動作で全く問題ないと思うが。
実際誰も擁護もしないし、必要性もないだろ。
逆にstructとclassを混ぜてる糞ソースでドヤア出来る感覚は頭おかしいと思うが。
2019/09/28(土) 22:23:14.45ID:xM8alBMg0
間違いで起きるかそれ?
それが起きるとしたら、同名だけど中身が全く違うものをincludeしてる状態だろ
class/sturctの違いだけ気づけてもありがたみない
2019/09/28(土) 22:34:45.68ID:8mEfdn9E0
>>477
間違いではなくて、
書いてる本人が同じ物にstructとclassを混ぜて使っており、
その本人がそれでいいと思っているケースだろ。
少なくとも ID:X/zAGzhO0 と ID:E6lKnilk0 はそうなんだろ。

> 同名だけど中身が全く違うものをincludeしてる状態
これはほぼ間違いなくコンパイルエラーで落ちるから、それで問題ないと思うが。
2019/09/28(土) 22:44:30.75ID:2zqklXVt0
警告出されないほうが困る事のが多そうだけどな
どっちで定義するつもりだったのかわからんもん
2019/09/28(土) 22:49:07.22ID:lqPuvWRw0
C++では、constが付いているかいないかでも、関数のmangling名が
違うので、リンク段階でエラーが出る。
こっちのエラーも余り深く考えたことが無いけれど、似たような意味で
structとclassが違っていればリンク段階でエラーになるようになっている
気がする。つまり、const属性の違いの混乱が起きていてもエラーになるが、
似たような意味でアクセス属性の違いでもエラーになるようになっている。

普通、ライブラリに対応するヘッダファイルを正しく #include していれば、
このような現象は生じないが、新しく追加された関数のプロトタイプ宣言が
無い場合に自分で、ネットにあったプロトタイプ宣言をコピーしてきたような
場合にconst属性の違いが生じることがあるかも。
それと同様に、自分で作ってるアプリの *.cpp と *.h で、勘違いして
class型の完全定義をstruct型で不完全定義してしまっているとか。
そういうのは中身まで間違っていることもあるので、リンク段階でエラーになった
方が、原因不明のエラーを防ぐのに有効だと思われる。
2019/09/28(土) 22:50:49.47ID:atv/D1Wn0
structとclassで多重定義できるべきとでも言いたいのか?
2019/09/28(土) 22:51:32.96ID:urQdgSwI0
コードスメル的な問題はあるとしても実害は考えられないのでは?
2019/09/28(土) 22:54:02.47ID:xM8alBMg0
で、VCの仕様で助かった経験のある人いんの?

class/structの違いは単なる表面的なsyntaxの違いでしかないと理解するのは自然
それが実はバイナリに影響してるってのはいらぬ驚き
という主張はおれはわかる

別にVCの仕様がおかしいとは言わないが何か防御に役立つとは思えない
2019/09/28(土) 22:57:28.76ID:8mEfdn9E0
>>482
>>459
2019/09/28(土) 22:59:07.82ID:E6lKnilk0
自分のポリシーとしては、
構造体は変数のブロック用程度にしか考えないし、ユーティリティ作るときはclass使う。

だから、構造体使うときは、アラインとか気を使う。クラスはどうでもいい。
2019/09/28(土) 23:00:07.72ID:8mEfdn9E0
>>483
むしろお前は混ぜていい仕様で助かっているのか?
2019/09/28(土) 23:00:21.59ID:2zqklXVt0
本来privateであるべきところがpublicになっててアクセスできるのは起こり得るんじゃないの

>>483
混ぜる必要がないし混ざらないほうがいいと思うけど
まず宣言と定義でごっちゃになることがないから実害食らったひとはいなさそうだけど
2019/09/28(土) 23:02:53.00ID:atv/D1Wn0
>>486
ニホンゴワカリマスカ?
2019/09/28(土) 23:03:40.64ID:X/zAGzhO0
>>459
こそ勘違いの最足るものだろうに
structとclassは定義時のデフォルトがpublicになるか否か以外言語仕様上違いが無いんだよ
struct A;
class A;
どちらもクラスAの宣言
2019/09/28(土) 23:03:45.92ID:xM8alBMg0
>>484
だからさ、class Aaaaとstruct Aaaaの2つの別々の宣言(前方宣言じゃない)があって、
メンバのアクセス修飾子だけが違うってどういう状況なんだよ
間違いで起こるかそれ?
2019/09/28(土) 23:08:03.45ID:LlqNH2NPa
前方宣言でclassとstructを変えることによるメリットは?
2019/09/28(土) 23:08:10.20ID:eyOXXdxS0
こんな糞議論しなきゃならん時点で有害だわ
2019/09/28(土) 23:11:12.80ID:X/zAGzhO0
むしろ合わせなきゃいけない意味がわからん
他人のカスタマイズ用のtemplate classでそれがclassだったかstructだったかを正しく覚えてなきゃいけないとか
2019/09/28(土) 23:15:06.74ID:y4xgEID10
使うだけならclassかstructか書く必要ないし修正を加えるなら必然的にソースコード見るだろ
2019/09/28(土) 23:20:24.74ID:X/zAGzhO0
いやだから特殊化するときだって
2019/09/28(土) 23:39:09.23ID:lqPuvWRw0
Aaaa を完全定義をする前に Aaaa 型へのポインタを宣言したい場合に不完全定義として
struct Aaaa;
としておき、後から完全定義として
class Aaaa {
  int   data1;  // class なのでデフォルトのアクセス属性は private 属性。
  ・・・
};
を与えた時、struct と class の違いでエラーにするかどうかの議論ですね。
そして、完全定義したときにだけしか、デフォルトのアクセス制御の public/private の違いは
出てこないので、エラーにする必要が特に無い、という説が出てきていると。
2019/09/28(土) 23:52:31.71ID:LuoDMBWx0
極めてくだらない話題だね
2019/09/29(日) 00:41:54.75ID:7gP8emxb0
>>496
完全定義されなければそのクラスのメソッドが何一つ呼べないキモス
よって不完全定義ならstruct/classの違いはおkというのは無意味な議論すぐる、
よってコパイラは単純にエラーにする
2019/09/29(日) 00:42:57.02ID:7gP8emxb0
名前が衝突した異なる型として
2019/09/29(日) 00:49:05.52ID:sIVLKl19a
ちょっと関係ある話なんだけどマングリングていう単語、なんかちょっとエロ要素あるよね
2019/09/29(日) 01:54:53.34ID:hPYugyVf0
pimpleやるときは前方宣言無いと辛いと思う。
2019/09/29(日) 02:00:50.57ID:hPYugyVf0
前方宣言でclassとstructが違うとユーザーコード書くとき気持ち悪くね?
2019/09/29(日) 07:26:51.75ID:MP9GBJ110
ピンプるときは宣言を書いたのと同一人物が定義も書くだろ
そこで間違えるとしたら相当に頓馬なやつだぞ
自分の癖さえ忘れるのは認知症だぜ

# hashを特殊化するときなんかは間違えないように気をつけている
2019/09/29(日) 09:31:02.95ID:sih8o/+S0
>>498
むしろ、完全定義されていない限りメンバ関数もメンバ変数も何一つ
使えないために、private/publicのデフォルト・アクセス属性の違いの
影響がでないからこそ、完全定義より前の不完全定義は、structと
classの違いを問わないでいいとも考えられる。
2019/09/29(日) 12:45:52.46ID:7gP8emxb0
>>504
型付き言語は型に関するプログラマーの間違いを指摘するのが優先
型推論が行えるときに型推論してタイピング量を減らせる手段「も」提供するのが第二優先
この優先順序を取り違えて良いものなら型無し言語を選択するほうが合理的である

つまり型付き言語のコンパイラーが型の誤り(デフォルト公開属性がpublicなstructとprivateなclass間の誤り)を
許すような振る舞いをするのは、現実に問題にならないとしても、道理に合わない

型の名前だけ宣言したくてclassかstructかの違いはどうでも良いなら、そういう意味のキーワードが用意されるべきなんじゃ
2019/09/29(日) 12:53:43.24ID:C35/CdkS0
classに関するc++の言語仕様とそのグレーゾーンのコンパイラ依存の話であって
型付き言語のあるべき論語ったところでしょうがないでしょ
本来言語仕様でstructとclassは型的に同じか否かが明言されてればそれで終了の話
道理はどちらでも通る
2019/09/29(日) 13:01:37.41ID:OYiClG3B0
言語仕様上は同じであることが明記されているし、それは書籍やweb上でも触れられている
重箱の隅ではなく常識として理解していたのだが

同じだと覚えて、その通りに使ったのに、msvcに移植する段になって奇妙な現象として実体化するのが問題
2019/09/29(日) 13:14:20.90ID:7gP8emxb0
>>506
>classに関するc++の言語仕様とそのグレーゾーンのコンパイラ依存の話
non
カプセル化の遵守を口にしつつ、前方宣言の記述をちょっとサボりたいがだけのために
デフォルト公開属性がpublicなstructと
デフォルト公開属性がprivateなclassをad-hocに同一視するええかげんな体系が有り得るのかという話

同一視する意図が無くかつ名前だけの前方宣言をしたいならば、名前だけ宣言する意味のキーワードでやれば無問題
無理矢理別の意味がまとわりついたキーワードを流用するのでは
コンパイラもコードを書いたプログラマーも表現を全うしたことにならず気持ち悪かろう
2019/09/29(日) 13:15:48.60ID:7gP8emxb0
>>507
>言語仕様上は同じであることが明記
同じ「型」であるというソースキボン
2019/09/29(日) 13:17:48.47ID:C35/CdkS0
>>508
gcc/clangでは通ること把握してるか?
2019/09/29(日) 13:29:13.33ID:C35/CdkS0
>>508
> カプセル化の遵守を口にしつつ、前方宣言の記述をちょっとサボりたいがだけのために

なんかお前は大きな勘違いしてる気がしてならないんだけど
前方宣言でclassと書こうかstructと書こうがカプセル化に何も影響ないだろ
なにがサボリなんだ?
classのかわりにstructと書いたらむしろ1文字多いのだが
2019/09/29(日) 13:32:40.67ID:qbYXpMyS0
C++例外の功罪について騙りたい。
2019/09/29(日) 13:37:04.22ID:k4CvVXqN0
>>512
語るのはいいが騙るなよ
2019/09/29(日) 13:39:29.17ID:k4CvVXqN0
>>508
C/C++には安易に予約語を増やさないというポリシーがあったと思うし、こんなレアで下らない例外ケースのために予約語を増やすのは賛同されないだろうよ。
2019/09/29(日) 13:40:32.98ID:eQVILPNx0
>言語仕様上は同じであることが明記されているし、
これが本当なら、とっくに規格厨が該当箇所を引用してくれてそうなんだけど
2019/09/29(日) 13:54:55.39ID:sih8o/+S0
>>508
>カプセル化の遵守を口にしつつ、前方宣言の記述をちょっとサボりたいがだけのために
不完全定義の主な目的は完全定義をサボるためではありません。
自己参照や、2つの構造体 A, B が有った場合、お互いに互い違い
に参照したい場合にどうしても必要だったので、pure C の時代から用意されて
いました。なお、ここでの参照とは、ポインタ * による参照です。pure C の
時代には、C++の & による参照はありませんでしたので。
2019/09/29(日) 13:58:57.67ID:UVnMNq400
https://timsong-cpp.github.io/cppwp/n4659/dcl.type.elab#3
> ..., the union class-key shall be used to refer to a union, and either the class or struct class-key shall be used to refer to a class declared using the class or struct class-key.
2019/09/29(日) 14:12:32.56ID:sih8o/+S0
>>516
訂正。自己参照は間違いでした。
完全定義すれば、予めの不完全定義がなくても自己参照が可能ですから。
不完全定義が必須なのは互い違いの参照です。
2019/09/29(日) 14:21:31.78ID:qdFsd7WD0
>>507
> 言語仕様上は同じであることが明記されている
どこに書いてあるの?
お前の脳内か?w
2019/09/29(日) 14:25:33.96ID:sih8o/+S0
>>518
再訂正です。
pure C だと、タグ名だけでは型名にならず、class key を直前に書く必要が
ありました。つまり、struct Aaa {・・・} という完全定義の場合、
・・・の部分で自己参照をする場合、C++ だと Aaa *pX; で良いのですが、
pure C だと struct Aaa *pX; と書く必要があります。だから、こんな感じに
書く必要がありました。
struct Aaa {
 struct Aaa *pX;
 ・・・
};
これは書くのがめんどくさいので、多くの人が
typedef struct _Aaa Aaa;  // 不完全定義と typedef の組み合わせ
struct _Aaa {
 Aaa *pX;
 ・・・
};
としていたのです。そのために、自己参照のためには、不完全定義が
ほぼ必須となっていたのでした。C++の場合は、typedef しなくても
class key なしのタグ名そのものが型名としても使えるので上記の様な
ことが必要なくなり、自己参照では不完全定義がいらなくなったのです。
521デフォルトの名無しさん (ワッチョイ bfad-S/NQ)
垢版 |
2019/09/29(日) 14:26:04.79ID:qbYXpMyS0
「カジュアルに警察や救急車呼ぶ」が物議 「適切な通報」か「ただの自己中」なのか? | キャリコネニュース
https://news.careerconnection.jp/?p=41755

C++例外をthrowすることの是非論に近いものがあると思う。
2019/09/29(日) 23:03:45.90ID:X3J8cFgd0
そんなにどうしても例外について話し合いたいならこちらへどうぞ
https://qiita.com/notenopg/items/40571e69986a58b888a0
2019/09/29(日) 23:55:06.58ID:OYiClG3B0
>>519
517じゃないの?
2019/09/30(月) 01:03:02.50ID:nHYsjKbQ0
つかお前ら解散して、本スレに行け。邪魔だ。
日本語読めない馬鹿韓国人>>488もな。

C++相談室 part145
https://mevius.5ch.net/test/read.cgi/tech/1568362404/


お前らの言うとおり、お前らと話しても時間の無駄だ。
文句を言われながらいちいち教えてやる意味はないから当然止める。
俺が422への講評を投稿することはない。タダ乗り狙いの馬鹿共はさっさと本スレに行け。
ただそれ以前に、俺がいくら書いてもどうせ読めないし、技術的にも理解出来るレベルにない。
正直、ここまでお前らが馬鹿だったのには驚いた。

ここで乗ってこないからお前らは馬鹿のままなんだ。聞くは一時の恥、聞かぬは一生の恥だ。
お前らは自分が馬鹿にされるのが怖くて何も言い出せず、安全地帯からクレクレ君だ。
ゆとりはネットの使い方を根本的に分かってない。
デジタルネイティブだから分かっていると勝手に信じ切っているが、それは完全な勘違いだ。
お前らは、今日ネットに向かって何か書いた後、書く前と比べて少しでも成長しているか?

コードを読む/書くのに時間がかかるのなら、それはお前らのプログラミング能力が足りないからだ。
それはやれば上達するし、やらないと上達はしない。つまり、やれば実になるものだ。
お前らゆとりはそういう地道な練習をしようともせず、ここでひたすら罵詈雑言だ。
それで何か得た物があったか?
こういう機会に地道にコードに向き合っている奴とはどんどん差が付く。そして今がある。
お前らはレベルの低さを自覚した方がいい。
そしてC++だけやっていても『今風の』プログラミングは学べない。それも知っておいた方がいい。
2019/09/30(月) 01:26:18.80ID:29SpHEC8a
(今風のプログラミングって何だろう?)
2019/09/30(月) 02:19:28.56ID:yat9MmGu0
スマートポインタの積極利用でしょ。
2019/09/30(月) 19:20:32.40ID:h36FzTTWa
C言語で今風プログラミングしてください。
2019/09/30(月) 19:29:26.35ID:d3KN1ocd0
C言語で今風のスクリプトのインタプリタを実装します
スクリプトでプログラムを書きます
2019/09/30(月) 20:29:16.61ID:ajIYYysl0
> 文句を言われながらいちいち教えてやる意味はないから当然止める。

ああやめろ
おまえ自分の言ったことちゃんと実行しろよ

どうせ三日坊主で我慢できなくなってしゃしゃり出てくるんだろうけどよw
2019/10/03(木) 20:02:50.87ID:pspZZwZs0
ならクラス分けのやり方に役立つ知識をくれ!!!!
2019/10/03(木) 23:48:30.19ID:doxd0JNA0
自分の中の知識や経験からくる予断にひきずられずにそのプログラムの仕様・要件にのみ従って設計すんだよ
2019/10/04(金) 08:24:01.39ID:MVQV/kgg0
それは無理
つーか動きゃいいんだって態度の素だぞそれ
1つの目標に対して複数の実現手段がある中から
どれがベストかという判断は知識や経験によるところが大きい
2019/10/04(金) 09:31:44.81ID:2obfK/LZM
それホントにベスト?
2019/10/04(金) 09:49:11.29ID:MVQV/kgg0
何を基準にベストというかも知識と経験によるところが大きい
2019/10/04(金) 10:31:32.01ID:1z0FSbuq0
まぁでも動きゃいいんだよ
すくなくとも動かないより大分良い
後、変に拘ってて糞みたいなやつより
素直なのがいい
2019/10/04(金) 11:21:14.02ID:MVQV/kgg0
動かないのは論外
論外でなくなっただけで慢心するやつは
他人の批評に聞く耳を持たないオナニー小僧だ
プロの職人は客の反応に関心がある
2019/10/04(金) 12:12:57.31ID:8yIxxMU30
この国のソフト屋にどれだけ職人がいるってのよ
大半がただの土方じゃねえか
2019/10/04(金) 12:24:43.08ID:MVQV/kgg0
おまえ土方をバカにしてんの?
2019/10/04(金) 12:32:18.96ID:TDKY2TUM0
多くの土方がいるからこそ職人が存在しうる
技術力の高い土方=職人
とするなら職人を増やすには土方を増やすべき
2019/10/04(金) 12:56:55.05ID:8yIxxMU30
職人になるのは職人見習いであって土方ではない
どこの業界でも同じ、エリートと人手要員とでは入り口が違う
2019/10/04(金) 13:00:57.26ID:MVQV/kgg0
くだらん言葉遊びだ
土方を馬鹿にするくせに同じ仕上がりのものをてめえは作れねえのを忘れてやがる
それが立場が逆でもわからないとしたら相当な知恵遅れだ

まあおそらく逆の立場になったことのないゴミニートだろうがな
2019/10/04(金) 13:13:06.36ID:1z0FSbuq0
>>536
オナニーやろうってのは無駄に拘ったコード書くやつのことだよ
2019/10/04(金) 13:14:16.00ID:MVQV/kgg0
>>542
無駄かどうか、おまえさんはどんな基準で線引いているんだい?
2019/10/04(金) 13:22:56.82ID:1z0FSbuq0
そんなこと自分で考えろ
2019/10/04(金) 13:27:33.21ID:1z0FSbuq0
これはあくまで国語の問題で
「動けばいいんだよ」的なことをオナニー野郎とは言わない
オナニー野郎ってのは珍妙なカラクリを作って喜んでいるやつのことを言うんだ
2019/10/04(金) 13:29:36.40ID:1z0FSbuq0
珍妙カラクリオナニー野郎に比べれば
特にこだわりのない「動けばいいんだよ」の方が
まだマシ
2019/10/04(金) 14:43:29.74ID:TDKY2TUM0
>この国のソフト屋にどれだけ職人がいるってのよ
>大半がただの土方じゃねえか
ソフト屋に職人と土方が含まれてるように自分で言っといて入り口が違うとか意味がわからん
2019/10/04(金) 16:04:51.75ID:MVQV/kgg0
もしかして頭が昭和のまま更新が止まったジジイか?
俺と同じバーによく来てる土木の土方さんなんか
下手なホワイトカラーより高収入だぜ
今はそんな時代なんだよ
てめえじゃ何もできねえハリボテ野郎のフカしが通用する時代じゃねえ
2019/10/04(金) 16:32:24.34ID:uYF9K7e8M
>>546
現在だけを見たらお前の言う通り
ただ「動けばいいんだよ」は10年後もそのままだけど「珍妙カラクリオナニー野郎」はたまに化ける
2019/10/04(金) 16:49:12.89ID:MVQV/kgg0
オナニー小僧って言われて発狂してるやつ
嫁の来手がないまま白髪が目立つようになったり光ったりしちまったの?
551デフォルトの名無しさん (エムゾネ FF0a-MsYi)
垢版 |
2019/10/04(金) 16:55:37.44ID:FW+Y/3wmF
白髪ならまだマシなビル
ちんこ勃たないレベルになるで
2019/10/04(金) 20:03:47.39ID:5CiM54x6H
>>551
それは深刻ですね…
2019/10/09(水) 23:24:31.98ID:aOv+d3Mp0
c++にはじめてさわったとき、クラスなるものに触れてシングルトンパターン凄くね!?と思ってたんだけど、スタティックと何が違うねんってなった
必ず生成されるか使われたときにはじめて生成されるかしか差がない??
2019/10/09(水) 23:30:02.37ID:5KUwoER40
classベースにしておけば継承なりなんなりOO的な設計手法が使える
でもシングルトンをすごいと思う感性におどろくわ
2019/10/09(水) 23:56:26.11ID:aOv+d3Mp0
>>554
値の変更を許さないってやるやん!?
用意にアクセスさせないやん!?これがカプセル化の極意か!!!とか思ってしまった
2019/10/10(木) 00:21:57.56ID:uUO69neG0
本当に1つだけなら静的変数でいいのよ
2以上の「n個まで」をやりたい時がシングルトンの使いどころ
「シングルトン」て名前がよくない
2019/10/10(木) 00:31:49.11ID:nZt6KVUa0
>>556
シングルトンなのに2以上になりえることあんの??
継承??
2019/10/10(木) 00:54:16.71ID:sP1rZpbe0
静的変数はスコープが限られてるけど(あるいはグローバル汚染するけど)
シングルトンなら使いたいところだけで使えるのがメリットだと思ってた
2019/10/10(木) 08:42:21.73ID:aZnaY5Is0
「使いたいところで使える」はメリットに見えてかなりのデメリットだぞ。
2019/10/10(木) 08:53:26.94ID:CaBqL/ld0
他インスタンスを生成させないことじゃないの?
静的変数だと別インスタンスが生成できちゃう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況