【初心者歓迎】C/C++室 Ver.5【環境依存OK】
静的に解決する場合もマクロよりテンプレート使った方がいいと思うがそれはともかく。
classAとclassBの間に継承関係はある?
あるのならもちろん仮想関数で解決できる。
今ない場合も共通のインターフェイスを継承するようにすれば解決できる。
これが一番言語的なサポートを受けられて簡単かな。
フリー関数でラップしてそのポインタを利用する。
より高度な枠組みとして簡単な deligate 風の仕組みを作る方法もあるが。
>>951、
>>952 早速の回答THX。
元のソースがcで、ClassAは既存構造体と関数をクラスにまとめたもの。
で、ClassBはそれとI/Fが同じになるように実装した。
となると、>952の共通のI/Fを継承するって線かな。
>>950 class Base {
public:
virtual void put() = 0;
};
class A: public class Base {
void put();
};
class B: public class Base {
void put();
};
Base *p = bar ? new classB : new classA;
p->put();
delete p;
俺も
>>954と全く同じソース書いてたんだが
条件演算子内の異なる new 式は
それぞれの記述部分で基底クラスのポインタにキャストしないと gcc-3.2 で警告が出た。
あとは本物のコードで put が例外投げることを気にするなら std::auto_ptr あたりでラップ、だな。
おおお、漏れが頭捻ってる間にすぐにも使えるサンプルキター♪
>>954 感謝♪
>>955 こちらにも感謝。
今回は元がcのコードなのでput()が例外投げるなんて事もないけど、
今後のためにstd::auto_ptrも調べてみるよ。
958 :
デフォルトの名無しさん:04/04/17 00:59
>>948 えーと、例えば行末のセミコロンの付け忘れとか、引数の型が違ったり
全角スペースみたいなのがあったり、
コマンドからコンパイルの命令してるから、エディタでフォーカスが外れるときに
チェックしてくれるとか、改行するときにおかしな所を知らせてくれるとか。
VBAにあるような感じのエディタ
>>958 >コマンドからコンパイルの命令してるから、エディタでフォーカスが外れるときに
>チェックしてくれるとか
意味不明
>>958 エディタのウィンドウが非アクティブになったとき
またはソース編集中に改行したとき、
・ セミコロンのつけ忘れ
・ 引数の型
・ 文字列リテラル以外の全角スペース
をチェックして警告してくれるエディタ
ってこと?
プログラミングもいいけどコミュニケーションの練習もしたほうがいいね。
961 :
デフォルトの名無しさん:04/04/17 02:38
このスレで聞くべき内容ではないのかもしれませんが
一応C++で書いているのでここで質問させてください。
質問
完成させたプログラムを他人に見せる・説明する・提出する場合に
どのように体裁を整えるべきでしょうか。
状況としては
・面識の無い他人に説明する
・相手にする人数は数人か、多くとも10人未満
・双方に取って金銭的な利益・不利益は一切生じない
・結果だけではなく(プログラミングの)過程に関しても説明する
いい例かわかりませんが、例えば大学の卒業論文や修士論文などを
提出・発表する際には、論文の他にアブストラクト(要約書)を用意し、
また論文の中身については表紙、目次、はじめに、などを加えるのが
普通だと思います。
あるいはフリーソフトではHelpとread meファイルは大抵付いていると思います。
このようにプログラムのソース以外の部分についての常識といいますか
最低限これだけは付加しておくべき、という項目のようなものがありましたら
是非教えていただけないでしょうか。
マ板ネタかな
>>961 質問,ツッコミが入りそうなところをまとめておいたほうがいいと思う。
どんなプログラムかわからないから、不要、無関係なものもあるだろうけど。
・プログラムの目的、予想される結果、実際の結果
・結果としてデータとか出力するものなら、それの説明と考察
・実行時に与えるコマンドライン引数、もしくは実行中に与える入力例
何か数値を与えるなら想定してる範囲と、範囲外のときの処理
・プログラムのフローチャートみたいなもの
・利用,作成した 関数,変数,クラスなど の(おおまかな)説明
・実行,コンパイルできる環境 (OSとかコンパイラーとか)
・なぜその言語や、出力手段(グラフとかグラフィックとかいったプレゼンの方法)を
選択したのか
・(あっちゃいけないのかもしれないけど、)改善できそうな点
説明とかで↑の内容が抜けてたら、私は質問すると思う。
>>961 完成までに要した時間(期間)とか人数なんかも気になる。
>・結果だけではなく(プログラミングの)過程に関しても説明する
ってのに含まれるのかな
>・プログラムのフローチャートみたいなもの
これ要らない。スレ違いの議論回避のため、理由は割愛。
966 :
デフォルトの名無しさん:04/04/17 11:30
マネージドC++での質問なのですが
.NETフォームのWindowハンドルを取得するにはどうすれば良いのでしょうか?
メッセージでのやり取りをしたいので・・・
>>962 言われてみれば確かに板違いの内容だったかもしれません。
以後気をつけたいと思います。どうもすみませんでした。
>>963-965 大変参考になりました。
フローチャートは用意する予定だったのですが、必ずしもそれが
良い行為であるとは限らないという感じでしょうか。
ただこれ以上はみなさんの迷惑になりそうなので、後は何とか
自分なりにまとめてみようと思います。
みなさんどうもありがとうございました。
新スレ作るの早過ぎないか?
埋めるぞ
Last-Modified: Sat, 14 Feb 2004 12:41:31 GMT
少なくとも2004年2月14日(土)12時41分31秒には既に存在していたらしいな
GMTか。日本時間午後9時?
>>976 JST の方が 9 時間早いんだからあってるんじゃないの?
Windowsプログラムを作成したいと考えています。
コンパイラはbcc5.5でOSはWinXPです。
'Winmain'が未解決というエラーを無くすには、どのようにすればよいのでしょうか。
>>981 WinMain関数が定義されていないので定義してやればいい。
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
return 0;
}
ありがとうございます。
もう一つ質問してもいいですか?
PSDKをインストールしたのですが、
これをbccで使うにはどうすればよいのでしょうか。
>>983 最新のAPIを使うのでなければ、BCC付属のモノを使った方が楽。
ヘッダファイルはともかく、インポートライブラリをcoff2omfとかで変換したり、
作成したりするのはかなりの手間。
>>981 コンパイラ bcc32 に -wc オプションをつけてコンパイルする
IDEを使っているなら、ターゲットを
「Windowsアプリケーション (-w)」
から
「コンソールアプリケーション (-wc)」
に変更する
>>983 なるほど、凄い量ですしね。
簡単にインポートできるようなソフトでもない限り、
bcc付属のやつを使ったほうがよさそうですね。
ありがとうございました。
すみません、間違いました。
986は
>>984へのレスです。
>>985 なるほど、オプションを変えてみるのも手ですね。
やってみます。
偶数であって奇数でない物はナンですか?
すべての偶数
そろそろ、1000取り合戦の始まりか?
このまま地味にいくのも趣があっていいなぁ
ちゅるーん
ちゅるるーん
しゃーない、一人でちゅるんするもんね。
ちゅるりん
997 :
デフォルトの名無しさん:04/04/23 17:42
でろりん☆
埋めるの?
埋めないの?
1000まで少しだね
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。