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


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

スレを勃てるまでもないC/C++の質問はここで 12



1 名前:デフォルトの名無しさん [2009/07/19(日) 22:32:32 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/
スレを勃てるまでもないC/C++の質問はここで 5
pc11.2ch.net/test/read.cgi/tech/1230516307/
スレを勃てるまでもないC/C++の質問はここで 6
pc11.2ch.net/test/read.cgi/tech/1231564903/
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/
スレを勃てるまでもないC/C++の質問はここで 9
pc12.2ch.net/test/read.cgi/tech/1240022781/
スレを勃てるまでもないC/C++の質問はここで 10
pc12.2ch.net/test/read.cgi/tech/1242300936/
スレを勃てるまでもないC/C++の質問はここで 11
pc12.2ch.net/test/read.cgi/tech/1245059383/

557 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 20:19:35 ]
>>539
別にするべきって言うか、別にしないと当たり判定クラスが
何のクラスか分からなくなってくると思うよ。
当たり判定クラスしかオブジェクト持ってないと
たとえば、自キャラの入力受付とか、敵キャラの生成・死亡管理とかも
当たり判定クラスでやらざるを得なくなる。

558 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 20:31:02 ]
>>557
え?
入力受付オブジェクトとか、敵キャラオブジェクトをどこかで持てばいいだけじゃないの?
当たり判定オブジェクトが入力受付オブジェクトとか、敵キャラオブジェクトを持つ意味ないでしょ?

559 名前:557 mailto:sage [2009/08/21(金) 20:49:28 ]
あー、ごめん。完全に勘違いしてた。
自機、敵機のオブジェクトのことだと思ってた。

計算クラスと制御クラスの違いが良く分からん。
計算クラスは関数オブジェクトか何かか?
だとすれば計算クラスは別の生成で良いんじゃない?
計算クラスの関数そのモノを継承して処理方法かえれるし。
当たり判定による難易度調整もできるんでない?

560 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 21:17:01 ]
メディエータにcreateHogeColleagueみたいなメソッドを作るべきかどうかってことなら
それよりファクトリクラスをほかに作って、そのインスタンスをメディエータにもたせればいいんじゃないかな

561 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 21:50:14 ]
なるほど。生成を別にしとけば、処理のさし替えをする際に
生成クラスにだけ注目できるメリットがありますね

562 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 22:54:54 ]
www1.axfc.net/uploader/File/so/29467.txt

こういうことって安全なの?

563 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 23:05:55 ]
大丈夫だよ。
#include っていうのは単にそこに文字列が展開されるだけだから

IntListクラスの宣言
IntListクラスの利用
IntListクラスの定義

っていう順番になってるだけ。

564 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:12:28 ]
staticメンバ変数は静的メンバ変数と言いますが、
constメンバ変数は何メンバ変数と言えばよろしいでしょうか?


565 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:31:56 ]
白米を指して麦の種類を聞いているみたいな



566 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:40:18 ]
>>565


567 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:54:01 ]
“変”数


568 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:41:21 ]
変なの

569 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:25:11 ]
仮に const を定数メンバ変数などと名前をつけたとして
では static const なメンバ変数はなんと呼べばいいのか。
それはつまり性的定子メンバであり
愛のコリーダである、と。

570 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:29:16 ]
今作っているプログラムからffmpegを呼び出したいのですが
なんてググればいいですか?

571 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:32:29 ]
system

572 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 01:10:51 ]
どうもです

573 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:23:05 ]
ShellExecuteEx()の方がいいだろ

574 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:37:30 ]
なにその非標準関数。

575 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:52:17 ]
>>573
すげー環境依存w
まあsystemも同じようなものか。



576 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 11:59:27 ]
template<class T>
class C {
};

template<>
class C<int> {
void F() {
}
};

としたときC<int>::F()でint直記述ではなくTの値を使いたいのですが、方法はありますでしょうか?
よろしくお願いします

577 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 12:24:16 ]
typedef int T;

578 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:23:34 ]
特殊化しといてT使いたいとか意味がわからんですよ

579 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:37:37 ]
興味のない方はすみません(スルーお願いします。)
新しくコンテストを来年開きたいと思っています
プログラマー(ゲーム・ツール・)の方は
pc12.2ch.net/test/read.cgi/tech/1221701297/l50
のスレに来てもらえるとうれしいです。
運営も募集しています。
↓のような感じでコンテストを開始する予定です。
219.113.110.143/


580 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 17:50:57 ]
template<typename T>void F(){}
template<typename T>class C{template<>friend void F<T>();};
template<>class C<int>{template<typename T>friend void F();};

みたいな事したいって話?

581 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 19:31:36 ]
クラスAのインスタンスの参照をもっているクラスBのインスタンスが複数あるとき
Aの寿命がすべてのBより長いことを保障したい
shared_ptr以外にいい方法はありますか


582 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:18:06 ]
>>581
なぜshared_ptrじゃ不満なのだい?

583 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:06:32 ]
>>578
複数箇所に同じ定数値を記述する手間を省きたかったので

>>580
目的としてはそれに近いですがfriendは使いたくないです


アクセスする方法はなさそうですね、ありがとうございました

584 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:00:06 ]
32ビットマシンでコンパイルしたバイナリは16 64ビットマシンだと動かないんですか?

585 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:16:06 ]
動くか動かないかは、コンパイルしたマシンで決まるわけではありません



586 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:53:02 ]
>>581スタティックに保障したいということならば、構造化を考えればいい。
スコープの外側で宣言した変数の参照をスコープ内だけで使用するのであれば
寿命の関係はスコープの外側>スコープの内側になる。C++の参照はこれに則っている。




587 名前:デフォルトの名無しさん [2009/08/25(火) 23:43:19 ]
質問っす
double d;
〜dを使った計算〜
int i = (int)(d * 32767.0);
てな計算があったんですけどこれの意味わかる方いらっしゃらないでしょうか?
32767という数字からしてただのかけ算じゃない気がするのです。

588 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:50:06 ]
www.google.co.jp/search?q=32767.0
でパッと眺めて使われているのはRAND_MAX関係での割り算と
あとは座標関係が多いようだが、さて。

589 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:52:49 ]
>>587
その行だけ見たら「ただのかけ算」としか言いようがないぞ。


590 名前:デフォルトの名無しさん [2009/08/26(水) 00:09:11 ]
何かイデオムでもあるのかと思ったのですがそういう訳でもないみたいですね
もう少し自力で調べてみます

591 名前:デフォルトの名無しさん [2009/08/26(水) 01:28:09 ]
文字変数aに『b』という文字、文字変数bに『c』という文字を代入して、変数aとcを使って、『db』と出力するプログラムを作成せよ




#include<iostream>
using namespace std;

int main() {

char a = 'b';
char c = 'd';

cout << "db" << '\n';

return 0;
}

この問題これじゃダメなんですか?

592 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:45:18 ]
g++先生に聞いてみたら、
> db.cpp: In function ‘int main()’:
> db.cpp:6: warning: unused variable ‘a’
> db.cpp:7: warning: unused variable ‘c’

unusedだって。

593 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:25:46 ]
>>591
#include <iostream>
int main()
{
char a = 'b';
char c = 'd';
std::cout << char(a + 2) << char(c - 2) << std::endl;
return 0;
}

594 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:58:16 ]
>>591
つ[変数aとcを使って]

595 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:08:55 ]
> 文字変数bに『c』という文字を代入
これが
> 文字変数cに『d』という文字を代入
の誤記として

#include<iostream>
using namespace std;

int main() {
char a
char c;

a = 'b';
c = 'd';

cout << "db" << '\n';

return 0;
}

とすればどうだろうか



596 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:52:14 ]
>文字変数aに『b』という文字、文字変数bに『c』という文字を代入して、
ふんふん。
>変数aとcを使って、
あれcどっから出てきてんねん。
>『db』と出力するプログラムを作成せよ
おいぃぃぃーーー!

という突っ込み待ち問題w

597 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:45:53 ]
class foo{public:typedef shared_ptr<foo> sp;}

typedef shared_ptr<foo> spfoo;

どっちがいい?

598 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:39:31 ]
namespace使おうぜ

599 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 19:37:45 ]
namespaceとtypedefが関数内で使えるなんて
おじさん知らなかったよ

600 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 22:14:02 ]
int main {
namespace A { enum U { a, b, c }; }
}

ってやったらエラーでたよ?

601 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 22:29:31 ]
そりゃ出るだろ

602 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 22:33:50 ]
>>599が「namespaceは関数内で使える」って言ってるのに
main関数内では使えないなんて!

603 名前:デフォルトの名無しさん [2009/08/26(水) 23:48:29 ]
>>595
ありがとうございます。つまり、>>594さんが言ってるのと合わせると、aとcっていうのを変数である、としてから、
作るって事なんでしょうか?

604 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:17:26 ]
「何か質問してください」って泣いて頼むんだったら質問してやってもいいよ( ・ω・)y─┛〜〜

605 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:24:55 ]
消えてください(´;ω;`)



606 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:58:12 ]
関数の引数で要素数の分からない二次元配列を受け取るにはどうすればいいですか?
決まった要素数でなく、様々な要素数の二次元配列に対応させたいんですが

607 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 01:03:30 ]
template<typename T,size_t T0,sizet T1>T func(T x[T0][T1]);

608 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 01:19:04 ]
ごめんなさいCなんでテンプレートなしで

609 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 01:39:19 ]
タスクシステムってようはコマンドパターンのリストみたいなもん?

610 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 02:27:50 ]
配列とSTLリストについての質問です。

配列を配列のままアクセスする場合と、ポインタ型のリストに入れてアクセスする場合
かなりの差が出てしまうのでしょうか?


<具体例>
あるクラス Aがあるとします。
A a[1000]; //A型の配列a
list<A*> list; //Aのポインタ型リスト list

と配列とリストを作り、listには配列aを1000個すべて入れていきます。(順序は関係なく)
配列aとリストlistをそれぞれ始めから終わりまでアクセスする。






611 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 02:30:34 ]
日本語が不十分でした。

かなりの差が出てしまうのでしょうか?

かなり速度において差が出てしまうのでしょうか?


追記:低スペックにおいての場合です。


612 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 03:40:15 ]
実際にやってみて比較すればいいだけじゃん。

613 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 06:46:01 ]
>>610
その単純な使い方なら、配列のほうが早いだろう。
しかし、実際に使うときは、使い方と処理方法により変わる。
いわゆる、適材適所だ。

614 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 11:47:43 ]
>>606
せめて C FAQ くらい読もうか。
ttp://www.kouno.jp/home/c_faq/c6.html#19

615 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 12:08:51 ]
先に書き込まれていたでござる
typedef unsigned long int size_t;

#if __STDC_VERSION__ == 199901L
int do_something_array(size_t row, size_t column, int array[][column]) {
for ( size_t i = 0; i < row; ++i )
for ( size_t j = 0; j < column; ++j )
(void)array[i][j];
return 0;
}
#else
int do_something_array(size_t row, size_t column, void *array) {
int *ary = array; size_t i, j;
for ( i = 0; i < row; ++i )
for ( j = 0; j < column; ++j )
(void)ary[i*column + j];
return 0;
}
#endif /* __STDC_VERSION__ == 199901L */

#define numberof(a) (sizeof(a)/sizeof(a[0]))

int main(void) {
int array[][3] = {
{1, 2, 3},
{4, 5, 6}
};
do_something_array(numberof(array), numberof(array[0]), array);
return 0;
}
行数詰めたのでめちゃくちゃ見にくい



616 名前:610 mailto:sage [2009/08/27(木) 12:25:36 ]
>>612
比較してみたのですが、かなりの差が出てしまい…
(iが1000ほどで 配列が1ms、リストが9msほど)
どこか間違いでもあるのかと疑っていましたので…


>>613
具体的には a[i].Exec などのように同じ処理をさせるのです。
配列、リスト、共に順序に意味など持たず
できるだけ処理速度(始めから最後まで)を重視したいと思っています。
また、頻繁にアクセスさせます(ゲームなので16msに一度程度)

このような単純な場合では配列の方が適切なのでしょうか?
for(int i=0;i<1000;){ a[i].Exec; }

617 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 12:29:28 ]
>>616
本当はlistじゃなくてvectorを使うべきなんじゃないの?

618 名前:610 mailto:sage [2009/08/27(木) 12:59:54 ]
>>617
Vectorも一度考えたのですが、まだ検証してみてはいません。
listで実装してしようと思った理由は、サンプルでそのような処理を行っていたためです。
(要素数の少ない処理でしたので差は体感できなかったのです)


>>610などの例では要素数が一定なのですが、
配列ではflagでExec()を実行するか否かを管理、リストでは実行するか否かを
EnableListとDisableList間で追加削除のやり取りをして、管理しています。
list<A*> EnableList; //実行したい配列のポインタのリスト
list<A*> DisableList; //実行したくない配列のポインタのリスト


Vectorが静的配列と同じくらいの処理速度でアクセスできれば
この処理について(追加削除などもあるので)適切だと思うのですが…
試していませんので分からない状態です。

619 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 17:48:18 ]
constつきのメンバー関数への関数ポインタってどう宣言するんでしょうか?



620 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 17:49:29 ]
すいません自己解決しました

621 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 18:52:55 ]
個数が分かってるならリザーブしとけば十分速いんでないの?

622 名前:610 mailto:sage [2009/08/27(木) 22:27:21 ]
Vectorで試してみました。

アクセスするだけならば、かなり早かったのですが
削除のために、iteratorをインクリメントしたりすると負荷が大きいみたいです・・・
iterator絡みの処理は負荷が高いんですね・・・初めて知りました。


>>621
リザーブすれば、速かったです。
ただ、削除・追加を行うには負荷が大きいようで
この事を考えると静的配列の方がいいのかなと・・・


623 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:37:42 ]
>>610
もうなでもいいから静的配列でやれ

624 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:13:23 ]
VC++ならvectorのiteratorはポインタ実装じゃなかったっけ
debugでやってないか?

625 名前:610 mailto:sage [2009/08/27(木) 23:24:20 ]
>>624
>VC++ならvectorのiteratorはポインタ実装じゃなかったっけ
VC++ですが、勉強不足で理解できませんorz
削除は、iteratorが指しているものしかできないようなのでインクリメントしてました。

debugでやってます。Releaseとの違いがよくわからず、ずっとdebugでやってきているのですが
処理速度などの違いがでるものなのですか?



626 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:30:20 ]
debugモードの時のSTLはエラーチェックがかかりまくるので相当遅い
releaseにするとコンパイル結果がiterator使ったときとポインタ使ったときで同じになる

まあ、なんだ、やってみろ
そしてEffectiveSTLでも読んでろ

627 名前:610 mailto:sage [2009/08/27(木) 23:38:06 ]
>>626
やってきました。吊ってきますorz
でも、こんな恥ずかしい事を早めに教えてもらって助かりました。リアルじゃなくてよかった・・・
EffectiveSTL買って読んでみます。



628 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 02:26:31 ]
なにこの<int>とかいうやつ。
適当に自前でリスト作って動かしたら速かったので変えたよ!

と、いう事態を何度か目の当たりにしたわ

629 名前:デフォルトの名無しさん [2009/08/28(金) 03:05:28 ]
上底を入力してください(単位cm)
3
下底を入力してください(単位cm)
4
高さを入力してください(単位cm)
5.0
台形の面積は17.5平方センチです

こんな感じのプログラムを作りたいんですが、

#include <iostream>
using namespace std;

int main() {

int input1,input2,input3;

cout << "上底(cm)を入力してください\n";
cin >> input1;
cout << "下底(cm)を入力してください\n";
cin >> input2;
cout << "高さ(cm)を入力してください\n";
cin >> input3;


return 0;
}

cin >> input3;から下が分かりません。

630 名前:デフォルトの名無しさん [2009/08/28(金) 03:19:06 ]
1つはfloatにするの忘れました。すみません

631 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 03:43:27 ]
ほー、台形の面積の求め方というのは、ゆとり教育と関係があったのか。
www.google.co.jp/search?q=%91%E4%8C%60%82%CC%96%CA%90%CF

632 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 19:35:59 ]
>>587
固定小数点にしたかったんじゃないの?

633 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 19:49:13 ]
>>632
俺もそれは思ったけどやるなら32768じゃない?
32767だとどうなるんだろ・・・

634 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 20:49:40 ]
>>633
ここのベクトル演算のヨタ話みたいなことじゃない?
www.flightinfo.jp/tmurakam/scatut2/fdinmen.html

635 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 23:58:08 ]
#if PROTOTYPES
#define P(p) p
#else
#define P(p) ()
#endif
int func P((int x, int y));

こんな気持ち悪いプリプロセッサを見つけたんですが、
これは何事でしょうか?



636 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 00:01:06 ]
プリプロセッサを見つけたのかよ

637 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 00:22:15 ]
>>635
ヘッダファイル見たことないのか?
見れば、似たようなものがあちこちで使われだろう
ANSI-C形式のプロトタイプ宣言をサポートしてないCコンパイラのため

638 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:26:49 ]
int x = 3;
int* x = new int(3);
ってさ後者がヒープ領域で、前者はどこに領域確保されてるの?

似たような質問で
クラスのオブジェクトの宣言で(仮にStudentというクラスにnameというメンバがあったとして)
Student sato("佐藤");
Student* sato = new Student("佐藤");
ってできるけど、これってどう使い分けるの?
メンバにアクセスするとき 前者は sato.name ってできるけど
後者は (*sato).name or sato ->name じゃなきゃできないらしい本読む限り。
視覚的に前者の「sato.name」の方がわかりやすいんだけど。使い分けを教えてください。
よろしくお願いします。

639 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:34:33 ]
>>638
ヒープを知ってるならスタックを知ってても良さそうにおもうけど、スタック領域。

newはヒープ領域に確保、単なる宣言はスタック領域に確保

640 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:36:09 ]
スタックには置きたくなく、どうしてもアロー演算子がいやな場合はtypedefまたはエイリアスを作ればよいかな

641 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:37:17 ]
typedefうそでした!

642 名前:デフォルトの名無しさん [2009/08/29(土) 01:59:30 ]
>>638
Studentのインスタンスを不定個作りたいときは後者じゃないと。

643 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 10:56:55 ]
みなさんありがとう。
>>642
どういうこと? Student型の配列として扱い
Student* satous[] = {new Student("佐藤一郎") , new Student("佐藤次郎") };
ってやるためということ?


644 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 11:07:59 ]
>>638 インスタンスの寿命で考えると分かる。

{
Student sato("佐藤"); //ここでインスタンスが作られる。
}  //ここでインスタンスが自動的に消滅する。


Student* sato;
{
sato = new Student("佐藤");//ここでインスタンスが作られる
}//ここではインスタンスは消滅されない。
delete sato; //ここでインスタンスを消滅させる。


645 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 11:15:33 ]
>>643
インスタンスを不定個作るということは、インスタンスを作る時と削除する時を
コンパイル時ではなく実行時に決めるから。



646 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 11:31:41 ]
すみません
演算子のオーバーロードをした場合(例えば、operator()(int a)みたいな感じで)
クラス内部でアクセスするときは、operator()(10)とするのが良いのでしょうか?
それとも、(*this)(10)とするのが良いのでしょうか?

非常にくだらない質問だとは思いますが、よろしくお願いします


647 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 14:37:45 ]
(*this)は式のままの書式で書けるメリットがある。
でも()は関数の形式だからどっちで書いても大差がないね。

thisを使うと最適化にはどういう影響が出るのかな?知ってる人教えて!


648 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 15:20:47 ]
どっちでも変わらんように思うけど、識者に任せる

649 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 06:26:10 ]
>>634
そういうことならありえるね
参考になったわありがとう



650 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 08:42:11 ]
C++でJavaみたいにfinalメソッドを作ることはできませんか?

651 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 11:51:27 ]
>>650
virtualをつけなかったら、finalになるんじゃないの?

652 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 11:54:12 ]
継承エラーなクラスを作ることはできますよ

653 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:38:26 ]
>>651-652
親クラスのポインタに子クラスを代入してるときにvirtualつけてないメンバ関数を呼べば
確かにそうなるかも知れないけど。
そうじゃなくて継承はさせたいけど特定のメンバ関数は上書きして欲しくない。
こういうのはC++では無理っぽいですか?

654 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:39:31 ]
Boostにそれっぽいのはあったような

655 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 14:15:46 ]
>>651
お・・・おまw

知ったかぶりするなよ。




656 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 16:30:44 ]
>>647-648
ありがとう
取りあえずは見た目優先でも問題なしと言うことでいいんすかね?


657 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:11:22 ]
変数を使う直前で宣言した場合よりも、スコープの先頭で宣言したほうが処理速度が速くなって
びっくりしました。
これって一般的なことなんでしょうか?
条件によっては速くなったり遅くなったりするものですか?
コンパイラ次第なんでしょうか?

今、使っているコンパイラはVC++コンパイラです。






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

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

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