862 :
デフォルトの名無しさん:04/08/05 23:40
むしろC++の構造体=クラスの劣化版
じゃないの?
劣化してないよ。
structにclassの機能を付与したのは
例によって付与しないデメリットが思いつかないという
思い付きによって決められた糞仕様なんだよ。
>>865 そうか。思いつきだったのか。別にCのstructの機能そのままでも
良かったような気もしたりしてたんだよな。
デフォルトのアクセス制限が違うだけなんだもん。
ファンクタを簡単に書くためだろ
つーか、classがデフォルトprivateなのもあんま意味ないよな。
カプセル化しないバカを減らすためだろ
interfaceもそうだけどあとからstructの性質を利用しただけだろ
872 :
デフォルトの名無しさん:04/08/06 02:00
すいません、
空のフォルダを削除するにはどうしたらいいのでしょうか?
googleで検索してもなかなか見つからず、
やっとサンプルコードが見つかったと思ったら、ないヘッダがインクルードしてあって
結局分かりませんでした。
標準C++にはありません
ファイルシステムの操作は,環境依存。
自分の環境スレ逝け。
>>874 環境ということは・・・
えーと・・・
BCC使ってるのでBCCスレということですね。
分かりました。
BCCスレで聞いてきます。
天然
877 :
デフォルトの名無しさん:04/08/06 03:30
removeで消えるんじゃねーの?
BCCはしらんけど
消えるかもしれないが、消えないかもしれない。
DOSのコマンド呼び出しちゃえば?
rdだっけ。
881 :
デフォルトの名無しさん:04/08/06 12:31
class A
{
int d;
A() : d(0) {}
};
はできるけど
class B
{
char s[16];
B() :s(0) {}
};
はできないよね。
コンストラクタで配列を初期化したい時はどうすればいいの?
newしろ
newすると0フィルされるの?
>>881 残念ながら、できない。
C++の仕様の穴と言われております。
でも、配列なんて滅多に使わないしなぁ。
>>881 つーか暮らす定義の中に書かなけりゃいい
std::memset(s, 0, sizeof(s));
ただ0のバイナリイメージが0じゃない環境では
うまくいかない希ガス。なので漏れは for で回してる。
std::fill使えばいいやん
Σ(゚Д゚)…!!
では std::vector ということで
char[16]にMD5とか格納したい時にわざわざ
vector作るの?
char なら std::string で。だめ?
std::stringってバイナリ格納してもいいの?
char[16]よりはvectorがいい
腹くくって素直にstd::fill()しる
>>893 いいよ。
正直char s[16]は突っ込むところじゃないと思う。
標準関数使ってる人はなに作ってるの?
898 :
デフォルトの名無しさん:04/08/06 13:08
for( int j = 0; j < 1000; j++ ){
try{
throw j;
}
catch(int z){
}
100回目で落ちます。なぜ?
環境書けよ。
あと普通のクラスthrowした場合は?
>>881 char []の0 fillなら初期化に頼らずに、
コンストラクタ本体での代入で十分じゃないですか?
>>900 0でいいなら、なにもしなくても0じゃなかったっけ?
時々あるが、質問者の「バイナリ」の意味がわからんな。
失礼しました。
for( int j = 0; j < 1000; j++ ){
try{
throw j;
TXOwl::Raise(""); // どちらか
}
catch(...){
}
}
BorlandC++5.02J
WindowsXP
です。
どちらでも101回目で落ちます。なぜ?
よろしくお願いします。
>>905 「落ちる」と言ってもいろいろあるんだけど。
具体的に。
>>905 コンパイラ最新のにしてみたら。
あとTXOwl::Raiseが悪さしてるとはないんだよね。
今年の夏もひとり。
自分のために夏休みは使うかな。
↑
誤爆してスマソ
>>906 ライブラリの中っぽい
0x77E33887 の pop si
でデバッガが止まります。スタックのエラーですかね?
>>907 throw 1; でも throw ""; でも同じ結果です。
コンパイラの更新ですか。ふぅ。
配列が100しか用意してないから
初期化しないといけない