09/03/01 21:31:09
>>236
死ねハゲ
238:デフォルトの名無しさん
09/03/01 21:31:47
反復処理とか繰り返し処理とか
239:デフォルトの名無しさん
09/03/01 21:47:20
リピート
240:デフォルトの名無しさん
09/03/01 22:14:30
>>228-231
見事な繰り返し処理
>>232は空気嫁
241:デフォルトの名無しさん
09/03/01 22:19:39
>>232
ssize_tとか、でもCでもC++でも標準ではないけど。
242:デフォルトの名無しさん
09/03/01 22:24:27
>>232
ptrdiff_tのこと?ポインタ同士の引き算の型だからちょっと違うが
243:デフォルトの名無しさん
09/03/01 22:34:14
>>241 >>242
そうだな。size_tでよかった。
244:デフォルトの名無しさん
09/03/03 05:50:11
まだ初心者なのですが、batファイルをC++builder6で
ボタンを押したら実行するようにしたいので
ShellExecute(Handle,"open",ファイル名.c_str,NULL,NULL,SW_SHOW);
と書いたのですが、うまくいきません・・・どなたか教えてくださいOTL
245:デフォルトの名無しさん
09/03/03 06:13:52
>>244
何故、どう巧くいかないのか書かないのですか?
246:デフォルトの名無しさん
09/03/03 06:28:56
実行はされるのですが(コマンドプロントが一瞬表示される)
バッチファイルの中身自体が実行されません;;
247:デフォルトの名無しさん
09/03/03 06:39:59
batの最後に
pause
入れとけ
248:デフォルトの名無しさん
09/03/03 07:00:46
>>247
ありがとうございます。
やってみたところ指定されたパスがありませんとのことでした。
普通にbatファイルを起動すると何も問題がないのですが・・・
原因などわからないでしょうか?
249:デフォルトの名無しさん
09/03/03 07:08:14
ファイルパスをちゃんと指定すればいいじゃん・・・
250:デフォルトの名無しさん
09/03/03 07:12:19
できました!
こんな時間に、質問に答えてくださりありがとうございました
大変助かりました。
251:デフォルトの名無しさん
09/03/03 18:34:32
以下のような感じで「*」の前後にスペースが
入っている場合もポインタの宣言なんでしょうか?
static unsigned int * ADDR;
スペースが、後だけのもは参考書にも紹介されていますが
前後両方ともスペースのものは見つかりませんでした。
よろしくお願いいたします。
252:デフォルトの名無しさん
09/03/03 19:01:49
vector<string> * const (&u)[buf]; // こんな感じですか?
253:デフォルトの名無しさん
09/03/03 19:06:04
>>251
おんなじ。空白類がいくらあろうと関係ない。
254:デフォルトの名無しさん
09/03/03 19:47:28
>>252
static unsigned int * ADDR;
全くこのままのコードです。
>>253
ご回答有難う御座いました。
もやもやしていましたが、これですっきりしました。
255:デフォルトの名無しさん
09/03/04 03:11:45
VC++9の質問です。Unicode環境で
Void Func(LPCSTR pMsg);
みたいな関数があって、ここに文字列を渡すのですが、
Func("xxx");
というように普通に書くと問題ないのですが、
Func(_T("xxx"));
とやると、
const wchar_t[3] から LPCSTRに変換できません、みたいなエラーが出ます。
全ての文字列を_T("") で括ればいいのかと思ってたのですが、違うのでしょうか?
256:デフォルトの名無しさん
09/03/04 03:14:42
>>255
_Tで括るのはLPC"T"STRのとき。
LPCSTRはconst char*のtypedefだから_Tは要らない。
257:デフォルトの名無しさん
09/03/04 03:25:58
>>256
なるほど、ありがとうございました。
258:デフォルトの名無しさん
09/03/04 13:36:24
初歩的過ぎてすいませんが...
すでに宣言してある配列の配列数を求めて
それと同じ配列数の配列を宣言するには
どうすればいいですか?
よろしくお願いします。
259:デフォルトの名無しさん
09/03/04 13:39:38
>>258
配列数はプログラム書いた人しか知らないから無理
それができたら配列のオーバーフロー管理も楽なんだけど
260:デフォルトの名無しさん
09/03/04 13:44:40
>>258
状況がよくわからん
261:259
09/03/04 13:44:42
sizeof(配列) / sizeof(型)
でいいか
マクロで定義して同じマクロ使うとか
262:デフォルトの名無しさん
09/03/04 13:49:06
char a[]={10, 10, 10};
char b[sizeof(a)];
int c[(sizeof(a)-1+sizeof(int))/sizeof(int)]
263:258
09/03/04 13:53:28
すいません言葉が足りなすぎました。。
int a[]= {1,2,...};
size=sizeof(a)/sizeof(a[0]);
int b[size];
として同じ配列数の新しい配列を宣言しようとしてもできません。
264:デフォルトの名無しさん
09/03/04 13:56:39
C++ なら const int size
Cなら int b[sizeof(a)]
265:デフォルトの名無しさん
09/03/04 13:57:14
>>263
size の型は何か
言語をいえ言語を
C か C++どっちだ
あとCならC89かC99なのか
266:デフォルトの名無しさん
09/03/04 13:57:33
>>263
コンパイラも
267:デフォルトの名無しさん
09/03/04 14:03:12
>>265
C++です。
size の型はintです
>>266
gccです。
268:258
09/03/04 14:08:43
const int size = sizeof(a)/sizeof(a[0]);
int b[size];
として宣言できました。
ありがとうございました。
269:デフォルトの名無しさん
09/03/04 15:03:27
配列の要素に変数が使える規格って無かったっけ
270:デフォルトの名無しさん
09/03/04 15:30:51
>>269
C99だろ
271:デフォルトの名無しさん
09/03/04 17:19:24
連立方程式のを渡したら戻ってくる関数ってありますか?
272:デフォルトの名無しさん
09/03/04 17:20:51
>>271
標準にはない
標準じゃなくていいならある
273:デフォルトの名無しさん
09/03/05 09:53:35
assert()と_ASSERT()ってなにか違いがあるのでしょうか?
274:デフォルトの名無しさん
09/03/05 10:11:11
assertはC/C++標準
結果としてabort()
_ASSERTはVC++独自
_CrtSetReportMode等で動作の調整が可能
275:デフォルトの名無しさん
09/03/05 18:14:15
メンバ関数のポインタの宣言はCxxx::*funcなのに
取得はCxxx::&funcでなく&Cxxx::funcなの?
&がなんで宣言の時の*の位置より移動するの?
276:デフォルトの名無しさん
09/03/05 18:40:47
>>275
発想としては、Cxxx::という修飾が
メンバへのポインタ型では*にかかっていて、
メンバへのポインタを得るときには、メンバ名funcにかかっている
ということのようだ。
277:デフォルトの名無しさん
09/03/05 18:51:32
俺としては逆なんだが
なんでCxxx::&funcなの?
どこのクラスのメンバ関数のアドレスか分からんが
278:デフォルトの名無しさん
09/03/05 20:41:28
大変だー
さっぱりわからん
279:デフォルトの名無しさん
09/03/05 20:43:44
>>278
何が分からないんだかさっぱり分からないぞ
280:デフォルトの名無しさん
09/03/05 20:44:43
>>275
単に文法的な曖昧さを除いた結果そうなっただけ。
class A {
public:
static void (*A::func)();
};
としてしまうと、static メンバ変数の実体定義がこうなってしまう。
void (*A::A::func)();
どっちがどっちの A:: やら分からん。
281:デフォルトの名無しさん
09/03/05 21:16:46
もうクラスのメンバ関数のポインタは無しで
282:デフォルトの名無しさん
09/03/05 22:09:09
9割くらいBoostやTR1のbind(暗黙のmem_fun)と一緒にしか使わない。
283:デフォルトの名無しさん
09/03/05 22:41:19
delegate パターンで使うね
284:デフォルトの名無しさん
09/03/06 01:31:13
じゃあdeleteパターンで
285:276
09/03/06 19:49:52
>>276, >>280
すみません、レス読んでも、それが
取得はCxxx::&funcでなく&Cxxx::funcなの?
の回答になるのか、さっぱり理解できないですが><
あと、&Cxxx::funcは&(Cxxx::func)としては良くないと本に書いてあるんですが
なんで良くないんですか?
286:デフォルトの名無しさん
09/03/06 20:12:15
なんか抽象クラスをインスタンス化できないらしいのですがどうすればいいですか?
派生クラスは無いのですが
その派生クラスの無い抽象クラスが型な引数をとる関数を使いたいのですが初期化?の方法がわかりません
287:デフォルトの名無しさん
09/03/06 20:16:31
>>286
まずは、その抽象クラスへのポインタ型か参照型を引数にしている?
288:デフォルトの名無しさん
09/03/06 20:24:22
>>287
ポインタ型を宣言してます、いろいろ上手くいかなかったのでポインタで宣言、元の抽象型で宣言、アドレスをポインタ型に代入→引数に
としてます、エラーメッセージはメンバが抽象型です、宣言を確認してください、です
289:デフォルトの名無しさん
09/03/06 20:27:48
>>286
派生クラスがない、ではなく、派生クラスは自分で作れということでは?
290:デフォルトの名無しさん
09/03/06 20:29:59
ああ、そうかもしれない
291:デフォルトの名無しさん
09/03/06 20:43:25
"派生クラスの無い抽象クラスが型な引数をとる関数"
これ、抽象クラスのインターフェイスを使って新しいクラスを作れということ
292:デフォルトの名無しさん
09/03/06 20:56:18
覚えておきます、ありがとうございました