[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/13 19:22 / Filesize : 243 KB / Number-of Response : 945
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part69



1 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:04:54 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part66
pc12.2ch.net/test/read.cgi/tech/1231640498/

※part63, part66 が重複していたようですので part69 としました。

413 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 15:38:47 ]
え?でもさ、よくしらないけど、フォームアプリなんて
System.Form.SetValue() みたいにどんどん深くなっていってない?

実モデルでたとえても、例えば
部屋A.本棚B.本C.ページD.GetText();
みたいな例は十分にありえるんじゃないの?

414 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 15:39:02 ]
>>402は今でもregisterを使っているのだろうか。

415 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:02:00 ]
せめてこうだろ
void foo::set_bar_value(int n) { bar.set_value(n); }
void hage::set_bar_value(int n) { foo.set_bar_value(n); }
void hoge::set_bar_value(int n) { hage.set_bar_value(n); }
hoge.set_bar_value(0);

俺はvector3やmatrix44みたいなのは公開してるなあ。
あとは、クラスとして独立させるほどでもないが、関連のあるメンバ変数をグループ化したいときに
structを使ってる。

416 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:05:06 ]
>>413
System.Form.SetValue()
どこのC#?

あとそれ名前空間と混ざってるから。

417 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:13:50 ]
でも名前空間って要するに全メンバがpublic静的なクラスのことだろ

418 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:21:41 ]
>>415
それはない

419 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:38:05 ]
しょぼい設計でなければ
名前空間で内部状態を壊されることはないから問題ない。

420 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:11:46 ]
class A{
  B* get();
}

というクラスで、get()メソッドをインライン関数にしたい
テンプレートクラスと同様に同じヘッダファイルに実装を書く場合、
inline B* A::get(){
  コード
}
の「inline」は意味があるのでしょうか?

421 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:15:11 ]
ない
というか意味があるかないかで言うなら、inlineは常に意味がない
コンパイラは自由にインライン化要請を無視できるし、要請されてない関数をインライン化することが出来る



422 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:25:36 ]
規格上はそうだが、一応現実的には意味はあるから、意味なしと言い切ってしまうのは誤解を招くのでは。
例えば俺が使っているコンパイラは「inline指定に従う/無視する」「inline指定がなくても勝手にinline化する/しない」
などの指示を自分で出すことができる。

423 名前:422 mailto:sage [2009/05/24(日) 17:26:22 ]
もちろん環境依存の話だから、詳しくは「自分が使ってるコンパイラについて調べてね」ってことだけど。

424 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:33:39 ]
inlineは、コンパイラの最適化云々ではなく、
ヘッダに直接(= インラインで)定義するぞ、という意味だと思えばいい。

425 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:53:20 ]
>>424
変な誤解を生むから詳しく知らないなら
黙ってるか断定的に書くな。

426 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:02:20 ]
>>424
適当なこと書くなよ。
cppファイルにてもinlineは書けるわけだし
もう何が何なのかw


427 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:05:30 ]
>>424
インラインに”ヘッダに直接”という意味があったなんて白なkったおれはどうすればいい?

428 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:06:30 ]
 "C++" "ヘッダに直接" "インライン"の検索結果 5 件中 1 - 5 件目 (0.33 秒)

429 名前:426 mailto:sage [2009/05/24(日) 18:08:40 ]
>>428
よくやったwww

430 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:35:56 ]
ところで>>420でinlineを付けなかったらリンカエラーにならない?
そういう意味でinlineはいると思うんだけど。

431 名前:デフォルトの名無しさん [2009/05/24(日) 18:37:06 ]
んなわけない。



432 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:38:13 ]
>>430
よくわからないけどオブジェクトコードにクロージャっぽいのがつくられるきがするぅ

433 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:53:52 ]
int DLLAPI (*mcOpenDevice ) (void) = NULL;

あるDLLについてたヘッダ内の記載なんですがVCで「構文エラー : '('」が出ます
カッコの数は合ってるし、関数ポインタの宣言としてもおかしくないように見えるのですが
詳しい方から見て何か違和感はありますでしょうか?

ちなみに #define DLLAPI WINAPI されてます

434 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:55:29 ]
ん、俺の環境(gcc 3.4.5)だと、ヘッダファイルのクラス定義内部じゃないところにinlineがついてない関数定義があって
それを複数の翻訳単位でインクルードしてコンパイルしてリンクすると、多重定義エラーでるなぁ。

435 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:56:14 ]
問題ないと思う
多分その直前に何かおかしい所がありそう

436 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:58:40 ]
WINAPIを関数名と勘違いしちゃったんだろうな。

437 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:02:20 ]
>>435 ありがとうございます
自分の作ったのでも結構悩むのに、さらに人の作ったのだと難度高いです・・・
もうちょっと見直してきます

438 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:18:02 ]
プリプロセスだけ通してみるとか

439 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:19:27 ]
先に<windows.h>をインクルードしたらいいと思う。

440 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:30:27 ]
>>438
プリプロセッサ以外の記述を削除ってことですか?

>>439
<windows.h>とかメジャー系はいくつか試したんですがダメでした・・・

441 名前:433 mailto:sage [2009/05/24(日) 19:35:13 ]
>>433のはMCRWwinというツールのです
ttp://www.geocities.jp/altshibabou/win/image/mcrwwin110.LZH

どなたかVC使いの方でビルド通るか実験して頂ける方はおりますでしょうか
最近入れなおしたので、私のVCの設定が悪いのかもしれない



442 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:37:14 ]
とりあえず
#define WINAPI

#define WINAPI __stdcall
って書いとけ。


443 名前:433 mailto:sage [2009/05/24(日) 19:52:22 ]
>>438
すんません、勘違いしてました
/E /Pで.i吐かせて該当行見ましたら

int __stdcall (*mcOpenDevice ) (void) = ((void *)0);
と展開されてました、他の箇所も見た感じ悪くはなさげなのです

444 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 20:09:04 ]
>>443
おお、それはエラーになる。
int (DLLAPI *mcOpenDevice)(void) = NULL;としてみるんだ。

msdn.microsoft.com/ja-jp/library/zxk0tw93.aspx
一番最後のExampleでもそうなっている。

445 名前:420 mailto:sage [2009/05/24(日) 20:19:30 ]
>>421-434
VC++2003を使っていて、今のところ1つのcppファイルからしかインクルードしてないので
inlineを付けても付けなくても問題はなかったのですが、
付けないとcppファイル毎に関数が定義されているとみなされる=>>430>>434
ということなんでしょうね。
どうもありがとうございました。

446 名前:433 mailto:sage [2009/05/24(日) 20:19:42 ]
>>444
ありがとうございます、無事ビルド通りました
>>436さんも多分同じこと指摘してくれてたんですよね、分からなくて申し訳ないです

みなさんのおかげで先に進めそうです
本当にありがとうございました。

447 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:06:14 ]
超初心者ですがコンパイラ何使ったらいでしょう?

448 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:06:41 ]
gcc

449 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:09:35 ]
書き忘れました
windowsで使えるものをお願いします

450 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:10:55 ]
>>448
よくわからないのでとりあえずぐぐってみます
ありがとうございます

451 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:13:22 ]
>450
WinならMinGW
まあgccなんだけどな



452 名前:デフォルトの名無しさん [2009/05/24(日) 21:13:37 ]
>>447
Visual C++ Express 2008

www.microsoft.com/japan/msdn/vstudio/Express/

453 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:15:33 ]
>>451-452
レスありがとうございます

454 名前:デフォルトの名無しさん [2009/05/24(日) 21:35:25 ]
Toubo C++

455 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 01:23:27 ]
>>454
初めて聞いた。
そしてググってみてちょっと面白かった。

456 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 01:28:58 ]
7件しかヒットしないぞ?
しかも全部中国。

457 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 02:44:48 ]
昔はTurboCといえば、M$としのぎを削った人気コンパイラだったのだよ。

458 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 04:02:59 ]
いやTouboだし。

459 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 05:23:12 ]
Toubo C++

検索したら漢字ばっかで
いじる勇気がでない。

460 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 06:40:45 ]
JIS X3014 6.6.3 return の 2 の最終行、「未定」が「末定」になってるw

461 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 07:46:16 ]
しばらくVBAばっかりいじってたから、C++のウィンドウの扱いが面倒に思えて困る

いつもVCの空のプロジェクトにダイアログリソース突っ込んで出してるんだが
ひょっとして空のプロジェクト使わなければC#とかみたいに簡単に扱えるのかな?
空じゃないプロジェクトって最初からコードいっぱい書いてて抵抗あったから今まで触ったこと無いんだ



462 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 07:48:25 ]
スレ違いすぎるだろ…

463 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 08:31:50 ]
>>461
vcでポトペタできるのはダイアログだけだよ
ウィンドウはムリポ
スケルトンコードは慣れかな
どうせ似たようなコード書くんだし

続きはVSスレかWinAPIスレかMFCスレで

464 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 08:46:11 ]
461です、スレ違いすまんかった
覗いてみた感じここの奴は視野が広そうだったから、ここで聞いてしまった

数年前に比べて大して便利になってないという事だな
昔作ったスケルトン掃除して使ってみるよ、ありがとう

465 名前:デフォルトの名無しさん [2009/05/25(月) 19:30:32 ]
blitz::Arrayって何を意味してる? ググってもわからんかった

466 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 19:46:06 ]
>>465
C++の言語に関する話としては
blitzというクラスの、Arrayというメンバ。もしくは、blitzという名前空間に含まれる Array というもの。

実際ぐぐってみたところ、Blitz++というライブラリがあるみたいだね。
このライブラリでblitzという名前空間を使っているようだ。

467 名前:466 mailto:sage [2009/05/25(月) 19:47:15 ]
英語が苦手で無いなら以下をどうぞ。
ttp://www.oonumerics.org/blitz/docs/blitz_2.html

468 名前:デフォルトの名無しさん [2009/05/25(月) 20:11:46 ]
>>467
回答どうも 軽く読んでみた。
じゃあどうやら 『blitz::Array< int, 2 > A 』 って宣言だと
『中に整数値の入る2次元の行列式の定義をbiltzっていう名前空間でやってる』って感じでいいのかね
Arrayは直訳で行列じゃなくて配列なのが気になるんだけどね・・・

469 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 20:15:59 ]
>>468
細かいとこちょっと違うけど概ねそんな感じ。

470 名前:デフォルトの名無しさん [2009/05/25(月) 20:21:33 ]
>>469
ごめん Cは前々からやってたんだけどC++は最近独学で始めたばっかりなんだわ…
で、違うところって? (俺の知識が浅いから、伝わらなそうだったらスルーしてくれ)

471 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 20:24:23 ]
>>470
ごめん、ちょっと忙しくなるから、後でまた来るわ
そのときまでに他のレスがついてなかったら書くよ



472 名前:471 mailto:sage [2009/05/25(月) 21:07:14 ]
まず、blitz::Array そのものは blitz名前空間の中に入ってるが、
blitz::Array< int, 2 > A;
とした場合、(これ自体をblitz名前空間の中に書かない限り)このAはblitz名前空間には入らない。

あと、「行列式」じゃなくて「行列」だな。(似てるけど意味が違う)

473 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 21:10:27 ]
行列式でいいだろ
行列を表すexpressionなんだから

determinantのことを言いたいなら、それは揚げ足取りと言うものだ
感心しない

474 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 21:10:55 ]
C++始めたばかりなら名前空間をよく分かってないかもしれんが
まあ、ちょっと語弊があるけど “blitz::Array<int,2>” で1つのクラス名だと思ってしまってもよい。
int a;
がint型の変数aであるのと同じように
blitz::Array<int,2> a;
は blitz::Array<int,2> 型の変数aだ。

名前空間ってのは、例えばライブラリ作成者がArrayっていう名前のものを提供している場合、
利用者のコードにもArrayってのがあると名前が衝突してしまって不都合だから、
名前がぶつからないように blitz:: という修飾をつけてるんだと思えばよい。

475 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 21:12:06 ]
>>473
そうか? 俺はどうしても気になるし明確に誤りだと思うが、まあ揚げ足取りと取られるならこれ以上は言うまい。

476 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 21:14:04 ]
>>473
アホだろお前。

477 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 21:55:28 ]
行列式は駄目でしょ

478 名前:470 [2009/05/25(月) 22:04:48 ]
なんか複数人からレスもらってるみたいで、皆さんどうもありがとう
blitz::Array<int,2> 型の変数aって感じは掴めてたんだけど、そもそもblitz::Arrayは何を表現するのかが不明で困ってたのよ

それはそうとプログラム板って初めて来たけどID表示ないんだな、不便じゃない?

479 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 22:13:22 ]
>>476
そういう言い方はたとえ2chでもどうかと思うぞ

まぁでも
行列と行列式は…何と何くらい違うんだろ。ブドウとグレープフルーツくらい?

480 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 22:16:39 ]
>>478
スクリプト書けばID丸わかりだから不便じゃないよ。

481 名前:デフォルトの名無しさん [2009/05/25(月) 22:53:31 ]
IDが分からなくても別に不便を感じたことない。



482 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 23:01:25 ]
Win32APIスレはなりすましで大変なことに…

483 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 23:06:44 ]
別に大変じゃないし

484 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 10:34:48 ]
>>395

A(int i) { i = hoge; }

↑ は何をしたいの?

485 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 15:55:38 ]
とてもサイズの大きなメンバ変数があったとき、
「そのメンバ変数のポインタを返すようなメンバ関数を作る」か、
「そのメンバ変数のコピーを返すようなメンバ関数を作る」か、
どちらがオブジェクト指向としてはよろしいのでしょうか?
前者だと、privateなメンバ変数に対して外部からタッチしてしまうことになりますが、
無駄が少ないように思えます。
後者だとprivateなメンバ変数を保護(?)できるというか、そういう考え方に則しているような気がしますが、
無駄にメモリを食ってしまう気がします。
完全に独学のため、ちょっと意味不明な単語が混じっているかもしれませんが、
教えてください。よろしくお願いします。

486 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:03:49 ]
>>485
どちらも問題外
クラスの設計をし直せ

487 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:11:05 ]
int gethoge();のような関数を作るのはよろしくないということなんでしょうか?
↑だとintのコピーを返す関数に当たると思うのですが、問題外となると、ちょっと目の前が真っ暗になってきました…。

488 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:49:15 ]
privateな構造がしゃしゃり出てくるクラス設計が間違い
最初からpublicに分類すべき
それで問題が出るなら普通の人なら根本から作り直すね

489 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:54:31 ]
すみません、現段階ではちょっと理解できないのですが、文献を漁ってなんとかしてみます。
貴重なアドバイスありがとうございます。

490 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:55:12 ]
>>485
const なポインタ or 参照を返せば、他から変更はできないけど、
他の部分がそのオブジェクトの構造に依存することになるね

491 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 19:08:44 ]
アクセス制御がなんのためにあるのかという根本が分かってないように見える



492 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 19:49:43 ]
>>485
まあ要するに、

クラスのクライアント(使う人)が
privateなメンバ変数(およびprivateメンバ関数)
については何も知らなくても
publicなメンバ関数を見るだけで
使えるように設計すべき

ということだよ。
これはすなわち、public/protectedなメンバ関数以外が変わっても
クライアントが書いたコードには影響がないということ。

ちなみにpublicなメンバ変数なんて大抵はクソ設計の証。


493 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 20:06:47 ]
485じゃないけど
>>492
それは基本的にはカプセル化に重点を置いてコードを書いた方が良い、ということで良いんでしょうか?

494 名前:492 mailto:sage [2009/05/26(火) 20:41:33 ]
>>493
そう。基本的にはね。
オブジェクト指向プログラミング (OOP; object-oriented programming)
においてカプセル化はとーーっても大事。

たまにいっそ全部publicにということで構造体structを使うことがあるけど
基本的にはそういうこと。


495 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:29:31 ]
なんとなく分かってきました、ありがとうございます

496 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:44:30 ]
まあ現実的にはpublic変数だの参照返しも使うことはあるけどね

497 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:47:56 ]
ねえよ

498 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:52:34 ]
無意味な隠ぺい無意味な複スレッドは考える力が足りない人が一度はハマる道程だからね

499 名前:492 mailto:sage [2009/05/26(火) 21:54:08 ]
現実にはそういう場合もあるかもしれないけど、
「良いクラス設計」の話に限った場合、フツーはない。

「全部publicにということで構造体struct」
は返り値に複数の情報を持たせたい時とかにありえる。
ただ複数の型を束ねただけ。


500 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:57:34 ]
GetとSetがズラリと並んだクラスは結構見るな

501 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:00:53 ]
ねえよ



502 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:04:41 ]
>>500
学生の頃作ったプログラム見直してみるとGetとSet多用しててえらいことになってた
今でもうまい設計はできないけど、他で使うならpublicでいいよねって話だよな

503 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 23:46:22 ]
Effective C++には最悪でもget()とset()用意しろって書いてあるよ^^

structでメンバ変数をpublicにするのは
>>499の言うとおり、値を束ねただけのものとして、
構造体を値として扱う場合にだけ許される。

Effective C++やC++ Coding Standards、Google Coding Standardsなんかを
ひとつも読んでいない人間はC++触らないでください

504 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 00:14:57 ]
>>503センセー俺1つも読んだことないんですけどー

505 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 00:21:02 ]
読むだけなら馬鹿でもできるから気にする必要無い

506 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 00:43:52 ]
class A{
int a;
public:
int get(){return a;}
void set(int i){a = i;}
};

こういうのはさすがにpublic派のほうが多い気がする

507 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 00:53:05 ]
宗教になぞらえられたりする理由なんだろうけど本人が気付くまで周りが何を言っても無駄なんだよね
距離を置いて厄災に巻き込まれないようにするだけ

508 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 01:15:12 ]
>>506 が「何を」 public にするのかは知らないけど、
もし int a を public にする気なら、豆腐の角に頭をぶつけて死ねといいたい

509 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 01:27:16 ]
メンバ変数をpublicに置くような人間は抽象化には興味ないんだろうな。
C++使う理由がないよ。多分。

510 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 01:33:51 ]
aがクラスや配列やポインタなら全くもってその通りだがintだぜ?
こんなプリミティブなメンバまで変更しなきゃならない時にはどうせインターフェースも変更入るよ
そこまでいちいちgetset噛ませと言い出すとちょっと原理主義すぎて現実的でない

511 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 01:49:08 ]
こういうとき、プロパティのある言語がうらやましいと思う。



512 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 01:50:40 ]
もしgetterやsetterで参照する対象が巨大な配列やクラスだったら
重いコピーが発生する事を覚悟しなければならない

つまり巨大な配列やクラスはgetterやsetterの対象にはならない

513 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 01:55:01 ]
>>510
返すのがintだからどうだって話じゃないだろ。たとえば
class A{
int a,b,c,d,e,f,g,h,i,j,k,l,m,n;
以下略
};
こんなのの実装をimplイディオムに変えたいと思ったときどうすんだよって話。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef