トップページ > 過去ログ > 記事閲覧
クラスライブラリやその他色々
名前:紙装甲 日時: 2010/11/14 02:41

タイトルのクラスライブラリのほかにも、 いくつかわからないことがあるので、教えて頂きたく思います //*** 1点目 *** 現在クラスライブラリを作成しているのですが、中にはクラスAとBがあります そこでクラスAのメンバ関数からクラスBの静的メンバ関数を呼び出したいと思います ライブラリのコンパイルは通るのですが、ライブラリを使う側のプロジェクトではコンパイル時に未解決の外部シンボルとなってしまいます 何か解決方法はありますでしょうか? //*** 2点目 *** 当方はBCCを使用しているのですが、ライブラリをビルドする時に Warning: 'クラス名' not found in library と出るときがあるのですが、もう一度試してみると出なかったりします makeやobjファイルなどを消してもう一度試すと出る感じです これはなにか問題があって表示されているのでしょうか? ライブラリを作るのは初めてなので、色々疎くてすみません エラーが出てもlibファイルは作成されて、ちゃんと使用できるみたいです //*** 3点目 *** プログラムのスタイルにもよるかもしれないのですが、 コード内にリテラルを直接書かないほうがいいだろうと思い、全てconstで定数として扱うようにしています そこでなのですが、たとえば while(CheckHitKey(KEY_INPUT_ESCAPE)==0) のような比較に使用する0値にも while(CheckHitKey(KEY_INPUT_ESCAPE)==INT_ZERO) のような定数を与えて書いたほうがいいのでしょうか? 以上3点、よろしくお願いいたします!

Page: 1 |

Re: クラスライブラリやその他色々 ( No.1 )
名前:紙装甲 日時:2010/11/14 15:16

一点目に関してはたった今自己解決いたしました staticメンバ変数の初期化を書き忘れていました 追記 書き忘れました 当方が書いてるのは静的ライブラリです
Re: クラスライブラリやその他色々 ( No.2 )
名前:いっち 日時:2010/11/15 00:23

> //*** 2点目 *** 分かりません。 > //*** 3点目 *** つけた方が良いと思いますが、関数の戻り値に正しい名前をつけることが出来るのは その関数を設計した人だけ(それも困難な作業ですが)なので、 関数の利用者が名前をつける場合は次善の策と割り切る必要があると思います。 また、CheckHitKeyの戻り値に名前をつけるのであれば、 INT_ZERO よりも KEY_ON/KEY_OFF や TRUE/FALSE といった名前のほうが良いと思います。 私がリテラルに名前をつける主な理由は以下のような3点なのですが、 INT_ZERO という名前はこの1番と2番に反しているように感じます。 1) 意味のある値に意味のある名前をつけることで可読性を上げる 2) 同じ値で異なる意味の値に別々の名前をつけることで可読性を上げる 3) 複数の箇所で利用する値の定義を一箇所にすることで保守性を上げる
Re: クラスライブラリやその他色々 ( No.3 )
名前:紙装甲 日時:2010/11/15 02:02

名前を与えるのに意味が伴ってないと意味が無い なるほどそうですよね! もう少し考えて命名するようにしてみます ありがとうございました!

Page: 1 |