- 1 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 17:54:00.55 ID:0DW9z0rL.net]
- ※前スレ
C++相談室 part153 https://mevius.5ch.net/test/read.cgi/tech/1602339500/ テンプレここまで
- 802 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 17:09:29.42 ID:UDAFNKrx.net]
- ちょっと何言ってるかわかんない
- 803 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 17:54:39.09 ID:ZF+WEG2v.net]
- 相談室に初心者が来て何の問題があるのか
- 804 名前:はちみつ餃子 mailto:sage [2021/02/20(土) 18:06:15.32 ID:N5IkYQZo.net]
- >>788
程度による。
- 805 名前:蟻人間 mailto:sage [2021/02/20(土) 19:27:14.79 ID:VmESNyRi.net]
- >>771
> array<T> a を vector< vector<T> > b に n 要素分コピーしたいときって > memcpy(b.data(), a.data(), n*sezeof(T)) > で良いんですかね? 待てよ、b.data()って&b[0]だから型はvector<T>*だろ。書き換えたらいけないアドレスじゃん。 ダメです。
- 806 名前:蟻人間 mailto:sage [2021/02/20(土) 19:49:01.06 ID:HfYkFRCd.net]
- C++のvectorでは、演算子[ ]がオーバーロードされてるから、C言語の常識が通用しないんだよ。
memcpyは危険な関数だから簡単にメモリー破壊できるんだよね。 std::vector v; int a = 5; memcpy(&v, &a, sizeof(a)); // vのメモリー破壊。
- 807 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 20:38:26.44 ID:PUIofNKd.net]
- >>791
流石にそれは質問者のレベルにも達してないんで問題外
- 808 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 20:44:29.23 ID:Rkd/h2tQ.net]
- 別にここで何が正しいかを結論できなくてもいいのだが
>>776 そう言うなら「推移的かつ反射的であるのみの順序関係」が「弱順序」と書いてある本を 教えてくれる? 手元になかったらうろ覚えでもいいけど。〇〇の××先生がそう言ってたみたいのでもいいw 知識として一応確認しておきたいかなと。
- 809 名前: mailto:sage [2021/02/20(土) 21:19:47.30 ID:mkFIMg3t.net]
- >>793
>>761 では「推移的かつ反射的であるのみの順序関係が『弱順序』」とはいっていませんよ、よく読んでくださいね >>761 で言っているのは「一番弱い順序、推移的かつ反射的であるのみの順序関係は、実は任意の二項間においてかならずしも順序関係の真偽が定まらなくてもいい」としかいっていませんですよね‥‥ 曲解もはなはだしいと思いますね ちなみに私の教科書ではこれを「擬順序」と定義しています、大熊正氏の本ですが、私には一生かかっても私には読めないでしょうから、あとはググってください
- 810 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 21:44:52.70 ID:K0wy5MAI.net]
- std::vector v(sizeof(int));
int a = 5; memcpy(&(v[0]), &a, sizeof(a)); // おk
- 811 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 21:47:14.25 ID:K0wy5MAI.net]
- つかこうかorz
std::vector<int> v((size_t)1); const int a = 5; memcpy_s(&(v[0]), sizeof(v[0]) * v.size(), &a, sizeof(a));
- 812 名前:蟻人間 mailto:sage [2021/02/20(土) 21:58:40.54 ID:HfYkFRCd.net]
- この場合は素直にループを書くか、それとも格好良くstd::copy使うのが楽かな。
- 813 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 01:26:13.27 ID:G4m9GHw4.net]
- for文回したら死ぬ病気にでもかかってんのか?
- 814 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 01:29:00.28 ID:oO8KGr2m.net]
- 条件を満たすならmemcpyのほうが圧倒的に早いからな
- 815 名前:はちみつ餃子 mailto:sage [2021/02/21(日) 01:32:42.66 ID:jd0qgVVy.net]
- それほど速くならない・速くなくていい場合のほうが圧倒的に多いってのもあるけどな。
- 816 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:13:29.79 ID:ZrTKdY4P.net]
- そもそもそんなクソみたいなコードはふつう書かない
- 817 名前:770 mailto:sage [2021/02/21(日) 03:54:49.57 ID:HYHVDYIS.net]
- >>780
IFooっていう名前からしてインターフェースってJava/C#的な意味でのそれだと思ってたけど それならポインタなり参照なりじゃないと機能してないよっていうかコンパイルエラーでしょってツッコミ
- 818 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:58:42.63 ID:0HHdBuLy.net]
- メモリコピーを最適化する前に、他にすべきこと沢山あるだろ的な答えになるよな、確かに。
PG界の真理情報だわ。
- 819 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 05:11:43.88 ID:L28MHLBD.net]
- valarrayでxorとか
- 820 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 07:43:27.01 ID:F92hI73d.net]
- >>802
オブジェクトAがconstメンバとして保持しているブツの所有権を移してオブジェクトBを構築することは ムーブコンストラクタでないと_なのでムーブコンストラクタである必要があり この要請はオブジェクト全体が直接アクセスかポインタや参照経由の間接アクセスかとは独立愚連隊、 >>803 真に高速化を求められる内側のループでstd::vector<int> xとかしないから >>796はひとつながりの省略のないコードとして読んだら判断を誤りうる
- 821 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 07:51:19.71 ID:F92hI73d.net]
- じゃなかったorz
Foo::Foo(const Foo& src) { (srcを変更して新しいインスタンスを初期化) } はconst_cast<Foo>的な危険手段でないとやれないが Foo::Foo(Foo& src) { (srcを変更して新しいインスタンスを初期化) } とするとなんかコンパイラが警告を出すから Foo::Foo(Foo&& src) { (srcを変更して新しいインスタンスを初期化) } にせざるおえないという、
- 822 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 13:21:42.30 ID:Dqlg3tSu.net]
- 関数と関数オブジェクトってどう使い分けるの?
- 823 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 13:30:17.46 ID:YxY+Ievf.net]
- こういう馬鹿にはちゃんとベンチマークとれって言ってやるのが正しい行い。
- 824 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 14:32:16.15 ID:HYHVDYIS.net]
- >>805
そんなこと聞いてるんじゃなくて 提示されたコード片じゃどう考えても動かないから何したいか分からんのよ https://wandbox.org/permalink/ancQey3IkQKyWsu1 こっから始めてどこをどうしたいか教えてくれ
- 825 名前:デフォルトの名無しさん [2021/02/21(日) 14:47:26.80 ID:9WgNecVw.net]
- 404 Not Found
- 826 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 15:33:36.83 ID:HYHVDYIS.net]
- すまん
https://wandbox.org/permlink/ancQey3IkQKyWsu1
- 827 名前:デフォルトの名無しさん [2021/02/21(日) 16:21:41.69 ID:u2qGdVDT.net]
- 過疎ってるし、初心者どころかJavaの質問でもOKでは?
- 828 名前: mailto:sage [2021/02/21(日) 19:01:13.83 ID:3Ebck9FU.net]
- >>807
この質問に対して回答をつける用意がありますが、しばしお待ちを
- 829 名前: mailto:sage [2021/02/21(日) 19:27:36.57 ID:3Ebck9FU.net]
- >>807,813
昔のコードを今読んでみたんですが、実のところ関数オブジェクトにする必要性があったかどうか、今の価値観のもとでは首をかしげています 数値計算のプログラムって、無自覚にバンバン書いてると例えばルンゲ食ったをやっているとこと他とかが混ざり合って収拾がつかなくなる、と思って関数オブジェクトにアイソレートした記憶があって、それを思い出して読んでみたんですけれども、今読んでみても、なんだか、ねえ‥‥ https://mevius.5ch.net/test/read.cgi/tech/1434079972/72
- 830 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 20:07:12.76 ID:F92hI73d.net]
- >>809
Fooはこんなやつ、 https://ideone.com/mPPH8I IFooは、C++ではよく考えたらIFooのオブジェクトを直接生成できないので(>>802の仰せの通り std::shared_ptr<IFoo>とかで生成することを考えたのだがエラーになるorz (上のリンク先のコードでコメントアウトしてあるgenerate_IFoo() 思いのほか闇が深かった\(^o^)/ std::shared_ptr<IFoo>が生成できた暁には、 std::shared_ptr<IFoo> pがリソースの所有権を握ったFooを保持しているとき、 std::shared_ptr<IFoo> qというのがいるとして、 *q = *p で所有権を*pから*qに渡したり、 return *p で呼び出し元が所有権を有するFooを受け取れるようにしたいワケ
- 831 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 20:09:12.28 ID:F92hI73d.net]
- ちなみにWandboxでソースコードをフォークする方法は
初心者なので わかり ません
- 832 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 20:14:47.49 ID:LxNhpnKU.net]
- generate_Foo()がコケてるのはnewのところでFooのコピコンがないだけだろ
コピコン書くか、ムーコン使いたいならnew Foo(std::move(foo3))にすればいいだけ 後半も意味不明 *q = *pってそれスライシングだぞ
- 833 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 20:23:47.49 ID:F92hI73d.net]
- >>817
普通の(ムーブでない)コピコンは書けないなぜなら>>806の理由により >*q = *pってそれスライシングだぞ どゆこと? Foo foo1とFoo foo2だと foo1 = foo2 とできるのに、
- 834 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 20:26:48.03 ID:F92hI73d.net]
- ちょっと補足すると、IFooには現状代入手段が無いから、
*q = *pはそもそもコンパイルが通ることはなく、目的とする機能を形而上的に表す仮想コード のつもり
- 835 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 21:03:58.63 ID:+My/Unlg.net]
- >>814
処理を意味でまとめるようなことなら積極的にやるべきだと思いますが、それは関数オブジェクトじゃなくて関数でもできますよね?
- 836 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 21:05:03.53 ID:HYHVDYIS.net]
- >>815
コピー代入演算子とムーブコンストラクタだけ定義するとか意味分からんし インターフェースによる隠蔽より先にそっち解決しなさい 何がしたいのか自分で本当にわかってる?
- 837 名前: mailto:sage [2021/02/21(日) 21:07:32.53 ID:3Ebck9FU.net]
- >>820
まあ、そのとおりであり、そうなんですよね… >>814 は関数オブジェクトである必然性はありません、関数オブジェクトを積極的に使う例としては STL にご登場願うしかないのかもしれませんね
- 838 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 22:29:56.45 ID:LxNhpnKU.net]
- >>818
shared_ptrは関係ないから普通のポインタで話するぞ(同じ事だ) IFoo* p = new Foo(); IFoo* q = new Foo(); というのがあったとして*q = *p;ってのは何だと思う? pとqはIFoo*型だ だからもちろん*pと*qというのはIFoo型だ すなわち*q = *p;というのはIFoo::operator=(const Foo&)の呼び出しだ operator=()はvirtualにできないから、pとqが本当はFoo型オブジェクトを指してることなんか知りもしないし考慮もしない よってIFoo部分の代入だけが行われて、要はqのIFoo部分だけが首チョンパされてpのIFoo部分が代入される これをスライシングという
- 839 名前:はちみつ餃子 mailto:sage [2021/02/21(日) 23:00:12.09 ID:jd0qgVVy.net]
- >>822
関数オブジェクトに「関数」とついているのは関数と同じ記法で呼び出せるということに意味があって、インターフェイスの問題。 状態を持った関数 (関数オブジェクト) も状態を持たない関数 (関数ポインタ) も統一的に扱えたらうれしいねって話なので、 状態を持たず、高階関数に渡すこともない場合は関数オブジェクトにする意味はないな。 (普通の関数も static 変数への参照を持ってたりする場合もあるので必ずしも状態を持たないわけではないけど。)
- 840 名前: mailto:sage [2021/02/21(日) 23:42:46.53 ID:3Ebck9FU.net]
- >>824,820,(>>813,814,822)
結局、どーでもいい一発芸で、ああ動くね‥‥、と思ったまま放置してましたね<関数オブジェクト https://mevius.5ch.net/test/read.cgi/tech/1434079972/21 https://ideone.com/9KIuSD あとはラムダ式の理解のための存在という認識、か
- 841 名前:はちみつ餃子 mailto:sage [2021/02/22(月) 00:10:55.10 ID:oiAqsUn6.net]
- 「ラムダ式が関数オブジェクト (型の定義と生成) の構文糖」というのは
既存のプログラムとの整合性を壊さない上手いアイデアだと思うけど、 しばらくしたら「関数オブジェクトはラムダ式の実体」という説明のほうが 通りがよくなったりするかもしれないね。
- 842 名前:デフォルトの名無しさん [2021/02/22(月) 04:39:33.19 ID:7qATnC1I.net]
- 関数オブジェクトで状態を渡せるのは結構なんだが、コピーコンストラクタ渡しなので、
手の込んだ状態管理だった場合は結局、C言語と同じ
- 843 名前:ュユーザー定義変数を介して状態を読み書きすることになる。 []
- [ここ壊れてます]
- 844 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 08:23:10.03 ID:Dz0hZ3aS.net]
- >>827
shared_ptr使えば、大抵の場合は問題ないんじゃない?
- 845 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 09:54:32.23 ID:Y0MZ31oO.net]
- >>807,820ですけどQZで始まる人あまりにもレベル低いというか回答者として不適格だと思うのでNGします
- 846 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 10:22:59.45 ID:1euWwsnd.net]
- >>829
答えてもらってる立場で偉そうに。常識ないの?
- 847 名前:デフォルトの名無しさん [2021/02/22(月) 11:11:29.17 ID:M+ptXBNl.net]
- いやでも実際・・・QZはね・・・
50過ぎのおっさんが無理して絡みにいってるけど空回りしてる感じなんだよね ほんと残念だけども
- 848 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 11:36:36.23 ID:7qATnC1I.net]
- 関数オブジェクトに対するラムダ式の優位性は、ローカル変数を比較的安全かつ手軽に参照渡しできることだろう。
- 849 名前:デフォルトの名無しさん [2021/02/22(月) 12:08:03.12 ID:5Ezd+ZoO.net]
- あわしろ氏がQzはアカン言うてたけど、ターゲット変えたのかな?
急にその手の書き込みが増えてあからさますぎる。
- 850 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 16:15:54.50 ID:rpJl6SNk.net]
- >>831
QZの回答は糞だとして、回答者に対して>>829みたいな態度をとることがどう正当化されるわけ?
- 851 名前:デフォルトの名無しさん [2021/02/22(月) 17:04:18.35 ID:M+ptXBNl.net]
- 回答者には無条件で感謝しないといかんのか?
気持ち悪いな
- 852 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 17:39:33.90 ID:rpJl6SNk.net]
- >>835
感謝しろなんて言ってないぞアホ
- 853 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 19:14:24.66 ID:SaDkzfTf.net]
- >>835
回答を得るのに適切な行動を取りゃいいよ。 変にヘイトを吐くとつっかかる奴がいるから回答から遠くなる。 >>829は感情を制御する訓練をしないとな。
- 854 名前:デフォルトの名無しさん [2021/02/22(月) 19:28:11.36 ID:M+ptXBNl.net]
- たしかに
勝手にNGしとけば十分で煽るように宣言するは意味はまったくないね 擁護した俺が悪かったごめん
- 855 名前: mailto:sage [2021/02/22(月) 19:57:55.16 ID:R3R68rti.net]
- >>831
認めましょう >>838 私の意見に一番近いですね 私は、馬鹿な私の意見を見たくない人も多いと想定しており、馬鹿な私が発言するときは馬鹿の印としてトリップをつけるようにしています、それだけは確約しますので、後は好きなように NG に入れていただいて結構ですよ 私はそういう人に干渉するつもりはありません
- 856 名前:デフォルトの名無しさん [2021/02/22(月) 20:02:59.96 ID:5Ezd+ZoO.net]
- そういう書き込みを見ると、あわしろ氏よりQzのほうが大人に見えるなあ。
まあでも、あわしろ氏には技術評論社がついてるからね。 謝っといたほうが良いんじゃないの?
- 857 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 20:52:21.84 ID:jfkpe4Eh.net]
- >>834
俺も以前質問したら、明らかに見当違いなマウント取りたいだけの回答が来て、言い返した時 君みたいな事言われたよ 回答くれるのは有難いが・・・ねぇ。 まぁそういうのはスルーしろ、ってんならまだわかるけど ちなまともな回答くれた人には礼言ってるからね
- 858 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 21:08:29.88 ID:51epSMYu.net]
- 知らんがな。キミの意見だけ聞いてその時どっちに問題があったかどうやって判断すればいいんだよ
- 859 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 21:18:11.70 ID:jfkpe4Eh.net]
- そういう話じゃねーよ
- 860 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 00:38:10.30 ID:6MWC7t1x.net]
- あるクラスのメソッドを他所で借りたいというか使いたいときって移譲(インスタンス化)するかコピペするしかないの?
- 861 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 00:41:49.01 ID:Z5ZYenTn.net]
- >>844
メソッドをクラスから分離してテンプレート関数にすれば、クラスの継承関係がなくても使えるので便利。
- 862 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 01:01:30.38 ID:48JMuLBY.net]
- >>844
メンバアクセスしていないならstatic関数にしてクラス名::メソッド名()で呼べる ただメンバアクセスしていない時点でその関数は本当にそのクラスに属すべきなのか再考したほうがいいけど あと継承する手もあるけど「借りたいから」程度の理由で場当たり的にやると確実に泥沼化する
- 863 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 04:11:59.35 ID:kBU50DXM.net]
- >>846
> ただメンバアクセスしていない時点でその関数は本当にそのクラスに属すべきなのか再考したほうがいいけど 極論、引数をとって返り値を返す関数だけで全てのことが実現できますよね? そう思ったらクラスのメソッドにするよりも何でもクラス外の関数にする方がお得というか楽な気がしてしまいます
- 864 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 07:21:43.52 ID:7kgSemXY.net]
- そのとおりで極力フリー関数にするべき
(非静的)メンバ関数というのはデータメンバーの一貫性を保つためだけに使うもんだよ
- 865 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 07:27:00.90 ID:ex5XjLGm.net]
- >>847
"メンバアクセスしてない"てのが重要だと思うよ 実際、非staticではなくstaticなメンバ関数にしたい場面てあんまり無い(外の関数と大して変わらんから) >>848みたいなのはオブジェクト指向も理解出来てないド素人が玄人ぶってよく言うんだよなぁ・・一応釘だけ刺しとく
- 866 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 08:19:26.69 ID:kBU50DXM.net]
- なんかOOPの行き着く先みたいな話してるな
俺も関数が引数と返り値としてメッセージを渡し合って協働していく方が洗練されてると思う 必然、その方が副作用も少ない
- 867 名前:デフォルトの名無しさん [2021/02/23(火) 08:29:56.96 ID:Z5ZYenTn.net]
- staticなメンバ関数には、名前衝突しにくい、msvcのインテリセンスのような入力支援を得やすい、という恩恵はある。
- 868 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 08:30:00.72 ID:u3MMsI1X.net]
- メッセージ・・?
何の言語の話してんだ
- 869 名前:デフォルトの名無しさん [2021/02/23(火) 09:47:50.72 ID:DwnxTU4/.net]
- オブジェクト指向の概念の話をするときにメッセージって言葉使いませんか?
C++ならメッセージ=メンバ関数 Javaならメッセージ=メソッド 言語によって呼び方が違うから概念的な話のときはメッセージといったほうが通りがよい
- 870 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:07:32.09 ID:B3ih21Pc.net]
- >>849
「オブジェクト指向も理解出来てないド素人が玄人ぶってよく言う」 の意味がさっぱりわからん >>848の表現に一切ケチつけられる要素ないと思うけど
- 871 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:15:54.38 ID:gTQJYaBt.net]
- > データメンバーの一貫性を保つためだけに使う
いったい何が言いたいんだろう 他人に分かり易く言えないのは自分が解ってないからというケースがある
- 872 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:18:06.26 ID:B3ih21Pc.net]
- > データメンバーの一貫性を保つためだけに使う
この表現で普通に分かるけど 分からん人もいるのね了解
- 873 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:20:33.46 ID:NIjAanwq.net]
- メッセージが何のことかわからないのはワロス
- 874 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:21:51.05 ID:gTQJYaBt.net]
- >>856
でか口は具体的に説明できてからぬかせ このハッタリ野郎
- 875 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:22:34.65 ID:7kgSemXY.net]
- データメンバに対して想定した扱い方だけをさせるようにして予期しない状態の発生を防ぐため、って言えばお気に召したかしら
普通はそれを短く「一貫性を保つ」って言うのだけど
- 876 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:31:05.01 ID:u3MMsI1X.net]
- >>853
使わない、というか使うな誤解を招くから SmalltalkとかObjective-Cならわかるけど C++やJavaのそれはメッセージングではないと考えるのが普通(そう見做せないわけではないが
- 877 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:33:09.34 ID:B3ih21Pc.net]
- >>858
?
- 878 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:34:51.99 ID:gTQJYaBt.net]
- >>859
1行目は納得 2行目の主観論には付き合ってらんね
- 879 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:37:31.33 ID:B3ih21Pc.net]
- >>860さんに同意で
C++やJava界隈だと明確に避けてると見てる メッセージってのは
- 880 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 10:49:29.89 ID:7kgSemXY.net]
- ごめんねおじいちゃん知らない表現を使われただけでそんなに拗ねるなんて思わなかったんだ
- 881 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 11:07:54.70 ID:u3MMsI1X.net]
- いや、悪いけど>>859を以って
>データメンバーの一貫性を保つためだけに使うもんだよ などと言い切れるのは経験不足と見られても仕方ないと思うよ学生ちゃん
- 882 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 11:13:43.78 ID:j4L8+y6t.net]
- おじいちゃんとか学生ちゃんとか、おまえらマウンティングしながらじゃないと会話できないのかw
- 883 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 11:54:07.11 ID:oVEFpcof.net]
- このスレは特にそういうの多いよね
- 884 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 12:46:58.74 ID:HLi0yp23.net]
- 昔からこのスレは特に酷いよね
なぜマウントの必要があるのかは少しだけ興味深いけど
- 885 名前:デフォルトの名無しさん [2021/02/23(火) 13:21:23.20 ID:+0nZ2NLW.net]
- Linuxを使う以上、C++を嫌わないとダメだろ。
- 886 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 13:45:38.11 ID:iu17pC6m.net]
- >>857,864
いや、メッセージはわかってるけどなんでC++スレで? って話だろ >>860の言うようにC++界隈ではあまり使わんし 単にイキってるだけにしか見えんw
- 887 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 13:46:51.42 ID:iu17pC6m.net]
- >>865
どういう理由で経験不足と判断したか言ってみ
- 888 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 13:47:30.93 ID:alqL+AST.net]
- オブジェクト指向に関しては、今の人は、昔はメモリが高価だったとでも思っておけば良いよ。
- 889 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 13:53:26.39 ID:UMWafFvJ.net]
- >>823
レスdクス大儀であった 自己解決しますた、 https://ideone.com/k76kj5
- 890 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 13:59:21.85 ID:UMWafFvJ.net]
- 一貫性というのはオブジェクト内部の整合性のこ
とを言いたい のでは… ※ 個人の感想です
- 891 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 14:03:58.66 ID:UMWafFvJ.net]
- C++のメソッドの呼び出しをメッセージと言い出すとウィンドウメッセージと紛らわしい(小並感
ていうかC++においてメッセージと言えるのはメソッドの「呼び出し」であってメソッドそのものではない (例えば)メッセージ自体は継承メカニズムとは独立の概念なのだから ※ 個人の感想です
- 892 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 14:10:51.07 ID:HLi0yp23.net]
- Smalltalkはほぼ知らんけど
メッセージ式ってのは セレクタ+引数のことだったはず いやこれどうでもいいか
- 893 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 14:18:47.72 ID:UMWafFvJ.net]
- ていうか今にして思えばstd::shared_ptr<IFoo>がIFooのインスタンスに対する所有権を適切に移譲したり管理するので
std::shared_ptr<T>に持たせることにした時点でIFoo自体がリソースに対する所有権を管理する必要はなさげorz
- 894 名前:デフォルトの名無しさん [2021/02/23(火) 14:29:34.84 ID:+0nZ2NLW.net]
- smalltalkなんて誰も使わないのだから、アジソンウェスレイのオブジェクト指向プログラミング入門にそう書かれていたからという理解で良いのでは?
若者もいるので説明しておくと、書店で書籍を買う時代があって、書店に並ばなければ書籍の存在自体わからなかったのですよ。 この本は何処の書店にも並んでいたので、スレの高齢者全員が読んでいます。 この本しかなかったんですよ。 良い本だとは思いませんが、30年たった今でも古書に値が付くはずです。 全員が読んでるので、全員が知っているかのように錯覚する人もいるって事です。
- 895 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 16:09:16.56 ID:CS53pw6I.net]
- C++のオブジェクト指向でメッセージングのワード出してくるのは
継承を説明するサンプルコードで動物の階層もちだしてくるのと同じ功罪がある 理解のとっかかりにはいいが、リアルな実装の段階ではそういうポエムみたいな話は忘れたほうがいい
- 896 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 16:11:25.59 ID:feF5fzNV.net]
- メッセージ(笑)とか頭おかしい奴が言いそう
- 897 名前:デフォルトの名無しさん [2021/02/23(火) 16:16:12.25 ID:+0nZ2NLW.net]
- >>879
功もあると御自分で書かれているのでは?
- 898 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 19:10:57.35 ID:48JMuLBY.net]
- >>873
これで本当にいいのか? コピー代入演算子でムーブさせるのが本当にあなたのやりたかったこと? std::auto_ptrはこの問題があったからdeprecatedになったんだけど
- 899 名前: mailto:sage [2021/02/23(火) 21:53:45.68 ID:tPF8d5Rx.net]
- >>878
>書店で書籍を買う時代があって、書店に並ばなければ書籍の存在自体わからなかったのですよ。 私の若い頃を思い出します。 当時、神戸の一番大きな本屋さんでは、どうしたわけだかコンピューター関連書籍の部分だけは黒山の人だかりで、いつも二十人くらいがみんな立ち読みしまくっていて、そういう人ごみを押しのけて本を探さなければならなかったくらいでした 最近右翼になった数学者・藤原正彦氏によれば、もっと古い時代には町の小さな本屋さんであっても普通にそんな状態だった、ときいています、とても信じられませんが‥‥ そういうわけで、アマゾン・ウェルカム!
- 900 名前: mailto:sage [2021/02/23(火) 21:57:00.55 ID:tPF8d5Rx.net]
- >>875
私は例のペゾルド教本を何とか C++ に適応させたくて、ペゾルド本の WM 処理・巨大 switch 文を C++ に適合させようと未だに四苦八苦していますが、やっぱり MFC に移っちゃったほうが楽チンなんでしょうか?
- 901 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 22:05:53.75 ID:u3MMsI1X.net]
- >>871
あまりに一面的な見方やろ >>848はカプセル化も多態も、上で話してた関数オブジェクトさえ否定する暴論 よほど拒否反応があるんだろうなー、と
- 902 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 22:07:42.70 ID:HLi0yp23.net]
- 否定したように見えちゃってるんだな
いろんな人がおるな
|

|