C++相談室 part16

このエントリーをはてなブックマークに追加
駄目
偶蹄目
奇蹄目
馬犬目
>>952
お前まさか、デフォルト引数のオブジェクトが
呼び出される側のスコープに含まれるとでも
思ってんのか?
>>954
お前まさか、>>951のソースがコンパイルできるとでも
思ってんのか?
>>955
コンパイルできますが、なにか?
>>956
貴様、MSVCだな!
>>957
Quick-C です。
あ、ごめん。BCC じゃないとだめぽ。
g++ だとエラーになんね。
VC でも動くかどうか知らんけど、g++ なら

const std::string& CNumber::GetValueAsString(std::string &ret = demi<std::string>())

とかって、やればOKだべ。
demi に関しては cppll を漁ってくれ。
>>959
覚えたてor見慣れない機能を好んで使う悪い例だな。
あれだ、えーと、Write only codeってやつだろ。

人に見せるコードなら、こんなんになるかの。
std::string CNumber::GetValueAsString();
void CNumber::GetValueInto(std::string& storage);
>>960
                 ┌─┐
                 |も.|
                 |う |
                 │来│
                 │ね│
                 │え .|
                 │よ .|
      ヌルポ  .  ゴルァ  │ !!.│
                 └─┤    プンプン
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎
ショウガナイヤツダナ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>961
じゃあreturnで値を返したい場合はコピーを返すのがいいのね。
964デフォルトの名無しさん:03/03/13 13:21
今まで局所的にdynamic_castを使っていたのですが、
それすらネックになってしまい、やむを得ずstaticなダウンキャストに切り替えた所、
実行速度が全体で20倍近く速まりました。

…は、いいのですが、これいうダウンキャストは合法なんでしょうか?
型チェックは一応問題ないと思います。
>>964
内部で閉じた処理に使うならダウンキャストもOKと思われ
理より速度を選んだってことだよ
行儀良くないけどなー
やむをえないって、コメントは入れとこう
>>965
ありがとうございます。おかげで、びくびくしてたとこへオーソライズされた気分です。
禿本貸し出し中で、処理系依存かなぁとか、その辺も心配だったので…。

目立つコメントいれておきます。レス感謝です。
void* に dynamic_cast した場合は、もう dynamic_cast で元に戻すことはできないの?
void*にdynamic_castって意味有るの?
普通void*にキャストする場合static_castじゃないの?
void* にならキャストは要らないんでわ。
void*には単なる代入でOK。
void*から元のクラスに戻すにはreinterpret_castが必要。
スマソstatic_castでいいです。
Σ(д`≡;´Д) part17 はどこ?
reinterpret_cast も static_cast も 不正な型変換があっても bad_cast例外をなげてくれませんよね。


やっぱ共通ベースクラスをつくって dynamic_cast かなぁ。
>>974
ポインタをdynamic_castしても例外を投げてくれませんよね。
リファレンスの場合だけです。
976デフォルトの名無しさん:03/03/13 21:26
#include <iostream>
using namespace std;
int main()
{
cout << "abc";





return 0;
}
error LINK 2019 未解決の外部シンボル
fatal error LINK 1120 外部参照が未解決です。
と出て本文にはフォーカスがかからないのですが、どういうエラーなのでしょうか?
コンパイラオプションが間違ってる
int i = 30;
ostringstream s; s << i; s.str();
これもっと短くかけませんか。
>>978
int i=30;ostringstream s;s<<i;s.str();
ostringstream s; s << int(30); s.str();
boost::lexical_cast<std::string>(30);
982v(^・^)v:03/03/13 22:01
983デフォルトの名無しさん:03/03/13 22:09
使いきりage
1000!!
埋め
986デフォルトの名無しさん:03/03/14 06:23
このスレッドは1000を超えますた。
またのお越しをお待ちしておりまつ。

1001!!
5670000000!!!
まったり1000!!
千!
千尋!
一回だけ手伝うよ。
>>1000
ぬるぽ?
throw NullPointerException;
throw new NullPointerException;
ぬるぽ言うならいまのうち
997仕様書無しさん:03/03/14 17:23

 | ̄ ̄ ̄|___
 |        ヌノ|
 |______|
    ∧∧ ||
    ( ゚д゚)||
    / づΦ
998仕様書無しさん:03/03/14 17:23
 ________
 |___        |
     |レポ     |
     |_____|
        || ∧∧
         ||(゚д゚,,)
        Φ⊂ ヽ
999仕様書無しさん:03/03/14 17:24
      ________
 | ̄ ̄ ̄|___       |
 |        ヌノ|レポ     |
 |______|_____|
    ∧∧ ||     || ∧∧
    ( ゚д゚)||      ||(゚д゚,,)
    / づΦ     Φ⊂ ヽ
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。