【初心者歓迎】C/C++室 Ver.37【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.37【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト50:デフォルトの名無しさん 07/05/11 00:10:27 >>42 つ[XLibスレ] 51:デフォルトの名無しさん 07/05/11 14:58:41 >>48 printf("そこには置けません! %d,%d, %d", row, col, ban[row][col] ); こうすると、A1の時にはban[0][0]になんか値が入ってるぞ。 値が入ってたら、check_locationが!0を返すのは仕方ない事だな。 で、main()の宣言直後に初期化してみたが、 // init for ( row=0; row<MASU; ++row ) for ( col=0; col<MASU; ++col ) ban[row][col] = 0; それでも現象が変わらんね。 調べるのが面倒になったから、check_locationを改変してお茶を濁す。 int check_location(int row, int col) { if (ban[row][col]!=1 && ban[row][col]!=2) return 0; else return -1; } これでA1に置けるようになったぞ。 でもなんか石を取るロジックとかバグ多くないか?w 52:デフォルトの名無しさん 07/05/11 20:30:51 class A { public: virtual A& a() { return *this; } }; class B : public A {}; int main() { B b = A().a(); } とするとAをBに変換できないって怒られるけど、いちいちBでもa()をオーバーライドしないとダメ? 理屈は分かるんだけど、継承してるんだから勝手に変換してくれりゃいいのに・・・ ↑みたいなことやるのに何か良い方法ないですか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch