- 1 名前:デフォルトの名無しさん mailto:sage [2006/12/30(土) 20:07:25 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
- 116 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 15:06:50 ]
- 0というより、0になった配列の各要素と言うべきだな。
- 117 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:12:23 ]
- 0 じゃなくて 0.0 を表示したいのではないかと esp
- 118 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:15:03 ]
- ほれ
#include <stdio.h> int main() { double d[5] = {0.0}; for(int i = 0; i < 5; i++){ printf("%.1lf\n", d); } return 0; }
- 119 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:52:50 ]
- >>117
そうです。 >>118 すいません。それはC++の場合はどうすればいいんでしょうか?
- 120 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:57:39 ]
- #include <cstdio>
int main() { double d[5] = {0.0}; for(int i = 0; i < 5; i++){ printf("%.1lf\n", d); } return 0; }
- 121 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 16:58:12 ]
- >>120
ありがとうございます。
- 122 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 17:08:17 ]
- d[i]
- 123 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 17:44:48 ]
- Cプラプラで0.0から1.0まで0.001おきに、その値と、その値の2乗を表示するプログラムって、どう作ればいいんですか?
- 124 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 17:48:56 ]
- >>123
まずはC++のコンパイラを入手し、お前が使ってるPCにインストールする。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 20:08:02 ]
- C++なら_asmが使えるからアセンブリで書いてやろうと思ったけどやめた
- 126 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 22:47:07 ]
- int data[10]={0};//dataの中身を全部0で初期化
これをクラスで記述する方法ってあるんでしょうか struct a{ int data[10]; a():??{} };
- 127 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 23:44:50 ]
- a() : data() {}でできない?
できないならおとなしく、コンストラクタのブロックの中でstd::fillでもするしかないな。
- 128 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 00:37:06 ]
- >>127
出来ました!こんな書き方があったとは ありがとう
- 129 名前:デフォルトの名無しさん [2007/01/15(月) 04:20:32 ]
- 画像のピクセルサイズを取得したいのですが
どうすれば取得できますか?
- 130 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 09:05:21 ]
- 画像ファイルの構造を知る
- 131 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 15:38:57 ]
- 男ならwaveだろうがbmpだろうが黙ってバイナリfstream
- 132 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 18:29:29 ]
- >>129
BITMAPINFOを足がかりに
- 133 名前:Cはできた(過去形)人 [2007/01/15(月) 18:29:34 ]
- BorandC++を使ってるんですが・・・ <iostream>ファイルをオープンできません とでてコンパイルできません・・・ いったいどうすれば・・・
- 134 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 18:34:02 ]
- >>133
お前じゃどうしようもないから諦めろ
- 135 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 18:46:29 ]
- >>133
普通にググったら見落としに気づくかもよ。
- 136 名前:デフォルトの名無しさん [2007/01/15(月) 18:54:30 ]
- 分割コンパイルしたオブジェクトファイルをmain.oも含めて静的ライブラリに
まとめた場合、一般にそのライブラリのみで実行ファイルをビルドすることは できるのでしょうか? GCCだとできたのですがVCやBCCだとどうなんでしょう? libfoo.aがmain.o, hoge.oで構成されている場合、GCCの例だと gcc -o exefile libfoo.a でexefileという実行形式を作成できました。
- 137 名前:デフォルトの名無しさん [2007/01/15(月) 18:57:51 ]
- 256*256の二次元配列を作りたいのですが、実行するとStack overflowとでてしまいます。
どうにか回避する方法はないでしょうか?
- 138 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 19:06:23 ]
- >>137
ヒープに割り当てる
- 139 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 19:10:57 ]
- mainを含んだ静的ライブラリってのは、
Win32のスクリーンセーバライブラリがそんな感じだな。
- 140 名前:137 [2007/01/15(月) 19:36:29 ]
- >>138
すみません。 ヒープに割り当てる方法を教えてください。
- 141 名前:136 [2007/01/15(月) 19:39:26 ]
- 今vc8で試してみたのですができませんでした。
具体的には cl /EHsc /c main.cpp lib.cpp lib /out:library.lib main.obj lib.obj cl /Feout library.lib out.objが開けないとエラーがでてしまいます。
- 142 名前:デフォルトの名無しさん [2007/01/15(月) 19:46:55 ]
- >>140
ヒープに割り当てるというのはmalloc(Cの場合)やnew(C++)などで 動的にメモリを確保することです。 あとは調べればわかるかと思います。
- 143 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 21:39:29 ]
- >>141
できたぞ。 cl /EHsc /Zl /c test.cpp lib /out:hoge.lib test.obj link /machine:x86 /entry:mainCRTStartup /out:HOGE.EXE msvcrt.lib hoge.lib /entryの代わりに/subsystem:consoleでもうまくいった。 またcl経由でリンカを呼び出してもできる。 cl /MD hoge.lib /link msvcrt.lib /machine:x86 /subsystem:console いずれにしてもLNK4001(オブジェクトファイルがない)という警告が出る。
- 144 名前:デフォルトの名無しさん [2007/01/16(火) 15:11:25 ]
- home.hiroshima-u.ac.jp/~m052291/sdk/index.cgi?event=view&num=246
どこでなにやってるか全然ワカランので、中盤以降に説明つけてください! あともう少し素人が作ったっぽくなりませんか?
- 145 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 16:04:06 ]
- >>144
それだけ素人丸出しなら充分だと思うが。
- 146 名前:デフォルトの名無しさん [2007/01/16(火) 22:33:51 ]
- Windows上で動くプログラムには仮想メモリが割り当てられてて
プログラムからは仮想メモリしか見えないんだよね? じゃあメモリエディタってどうやってんの?
- 147 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:50:39 ]
- 適切な権限さえあればよそのプロセスのメモリだって読み書きできる(真っ先に思い浮かぶのはデバッグ用途)。
大抵は権限の設定なんてやっていないから、同じユーザのプロセスならだいたい読み書きできると思っていい。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 00:14:54 ]
- Windowsカーネルは全部の仮想メモリを知ってるから、
API叩いて教えてもらうんだよ。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 11:27:50 ]
- 実際に物理的なメモリを書き換えているとは限らない
ひょっとするとあなたの書き換えた場所はディスク上の一部かも知れない
- 150 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 00:10:28 ]
- 質問なんですが、C++の問題集でお勧めなのはないでしょうか?
参考にしたいのでお願いします。
- 151 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 03:22:51 ]
- >>150
C/C++問題集スレ pc10.2ch.net/test/read.cgi/tech/1168663908/
- 152 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 13:53:15 ]
- >>151
ワロタ
- 153 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 12:08:48 ]
- Cの経験が少しあってC++をはじめた者です。
憂鬱なプログラマのためのオブジェクト指向開発講座(第2部第5章p116)で、 「コンストラクタを使って、定数メンバの初期化を行うことができます」 と書いてありました。定数の初期化って、定数はあらかじめ 定義されているものだと思うんですけど、 どういうことでしょう?
- 154 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 12:21:08 ]
- 定数メンバと定数は違うだろ
- 155 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 15:25:31 ]
- static const double a=1;
じゃだめなのですか?
- 156 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 16:04:03 ]
- 153は非静的メンバの話だと思う。
- 157 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:09:46 ]
- >>154
>定数メンバと定数は違うだろ 定数って const int a; とかですか?
- 158 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:29:36 ]
- 憂鬱本↓
メンバ初期化の方法はLIST6のように考えるのが普通でしょう. 確かにこのように書くことは可能です.・・・しかし,これは進められる書き方ではありません.なぜならば,これでは定数のデータメンバを初期化することができないからです. クラスのメンバデータには定数も使用することができます.その初期化を行うのも当然コンストラクタということになるでしょう.しかし,コンストラクタとはいえ,やはり関数です.その中で定数を書き換えることはやはりできません. さてそれでは,別の方法で定数メンバを初期化することは出来るのでしょうか.そのような特別な方法が用意されているのでしょうか. これはそのような方法が存在します.C++では,コンストラクタがメンバを初期化するために新しい構文が設けられています.メンバの初期化はLIST7のように行います.
- 159 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:31:59 ]
- LIST6:データメンバの初期化
Person :: Person () // コンストラクタの実装部 { age = 0 ; // 年齢の初期化 name = NULL ; // ポインタの初期化 } // しかしこの方法は薦められない! LIST7:コンストラクタでのメンバ初期化 Person :: Person () : age ( 0 ) , name ( NULL ) // 正しい方法 { // 何もしない }
- 160 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:25:26 ]
- _, ._
(;゚ Д゚) …?
- 161 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:38:24 ]
- 新版も出たことだし、Effective C++ くらい買いなさい。
- 162 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 19:07:38 ]
- >>158
>これはそのような方法が存在します 日本語でおk
- 163 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:09:24 ]
- (これ、Visual C++のスレで質問するべきなのかもしれませんが)
標準C++というのでしょうか、windowsコンソールアプリケーションの 文法で、Visual C++のよなwindowsプログラミング(ファイル[メニュー]や ボタンを付けたいだけですが)をすることってできるでしょうか? やはりそれはVisual C++でしかできないのでしょうか? 環境はVisual C++ 2005 Express Edition使っています。
- 164 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:26:27 ]
- >>163
Visualという単語で勘違いしたのかな?VC++でコンソールアプリも書けます。 VC++でコンソールアプリを書いてもWindowsアプリを書いても、VC++の文法は同じです。 Windowsアプリの開発環境はVC++だけではありません。VB、Delphi等々色々あります。
- 165 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:53:02 ]
- >>164
返信感謝します。 (私があまり理解していないので、言葉がうまく見つかりません) 普通(?)のC++(コンソールアプリ)は、やったことがあるんですが、 windowsアプリケーションのソースを見たところ、 “ハンドル”という言葉が出てきたりして、 私が今まで勉強したC++と少し違うと思いました。 文字列に関しても、宣言が下のように違うようです。 string word @ ↓ string^ word; A winwosアプリをする場合は、新たにAのような文法を勉強しなければ ならないんですよね?
- 166 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 15:42:41 ]
- ないない
- 167 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 16:20:59 ]
- ルンゲ・クッタ法を用いてX-Y軸上に楕円運動の軌道を描く際の、各点においてのX軸Y軸方向への速度をV,Uとして時間T毎にファイルに書き込みたいのですが、どういった書き方ならば綺麗に描けますか?
- 168 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 16:28:14 ]
- >>166
どっちでしか?
- 169 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 17:54:33 ]
- >>165
「string^ word;」がエラーにならないとはちょっと思えない。 “ハンドル”はHANDLEのこと?ならそれはWindowsが定義してる型。typedef void *HANDLE;。 それともメッセージハンドラ?なら、イベント駆動という考え方を知る必要がある。 まぁ、まずはWinアプリの入門書か解説ページを読んで。
- 170 名前:165 mailto:sage [2007/01/24(水) 18:11:36 ]
- 返信ありがとうございました。
>“ハンドル”はHANDLEのこと?ならそれはWindowsが定義してる型。typedef void *HANDLE;。 >それともメッセージハンドラ?なら、イベント駆動という考え方を知る必要がある。 前者だと思います。 ↓のように使用されていて、 文字列型のハンドル、オブジェクト方のハンドルがあると書いてありました。 private: System::Void buttonAdd_Click(System::Object^ sender, System::EventArgs^ e) { Debug::WriteLine("追加ボタンをクリックしました"); // 品名、分類、金額を取得する String^ name = textName->Text; String^ kind = comboKind->Text; String^ money = textMoney->Text; String^ out; out = String::Format("品名:{0} 分類:{1} 金額:{2}", name, kind, money ); Debug::WriteLine( out ); } >まぁ、まずはWinアプリの入門書か解説ページを読んで。 普通のC++を知っているだけでは、windowsプログラミングは無理のようですね。 じっくりやってみようと思います。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:03:37 ]
- >>170
あぁぁ、C++/CLIですね。だと文法も拡張されてるそうです。 新しいことをあまり知らないくせにレスつけました。すいません。 でもWinアプリを書くのにC++/CLIじゃないとダメってことはないですよ。
- 172 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 20:38:23 ]
- >>151
とりあえず、参考にしてみます。
- 173 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 22:12:01 ]
- >>170
そのハンドルは169の言っているものとは違う。 171も言っているが、それは.NET Frameworkを使って動くプログラムを書くために作られたC++/CLIという言語のプログラム。 普通のCもしくはC++を使ったWindowsプログラムはまた別物。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 22:38:23 ]
- >>171,173
指摘していただき感謝します。 C++/CLIは別なんですね。知りませんでした。 私はC++/CLIでない普通のWindowsプログラミングをしたいのですが、 その場合は、普通のC++と同じ文法でやれるのでしょうか? VC++2005Express使っているんですけど、 その場合、プロジェクトの作成の仕方は、 [ファイル]→[新規作成]→[プロジェクト] から、[新しいプロジェクト]ダイアログで、 [プロジェクトの種類]で、[win32]で選ぶのかと思うんですが、 この時[テンプレート]で選択できるのが[win32コンソールアプリケーション] だけになってしまいます。 やり方が違うと思うんですが、 教えていただけますか?
- 175 名前:デフォルトの名無しさん [2007/01/24(水) 23:13:41 ]
- >>174
VC++2005ExpressEditionでwin32アプリケーションを作るには www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ ↑で環境をもうちょっと追加しなければならない。 ちなみに .NETアプリってのはCLRとか書いてるやつね win32のウインドウアプリも、コンソールアプリもC++でかけるんだけど、 window.hをインクルードしたり、スタートが WinMain関数だったり、ちとちがう。 www.kumei.ne.jp/c_lang/ ↑のWindowsSDK編ってとこ読むといい。長いしめんどくさいけどね。 VC++2005ExpressEditionではちょっとメニューのエディタないからよけい大変 WindowsSDKでの開発がめんどくさいから MFCだとか、VisualBasicとかもっと簡単にウインドウ出せるアプリ作れるものが出来てきたんだよ。 .NETアプリならVC++2005でも視覚的にウインドウアプリ作れるんだけどね。
- 176 名前:174 mailto:sage [2007/01/24(水) 23:45:24 ]
- >>175
丁寧な説明ありがとうございます。 >VC++2005ExpressEditionでwin32アプリケーションを作るには >www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ >↑で環境をもうちょっと追加しなければならない。 早速入れました。 >win32のウインドウアプリも、コンソールアプリもC++でかけるんだけど、 >window.hをインクルードしたり、スタートが WinMain関数だったり、ちとちがう。 >www.kumei.ne.jp/c_lang/ >↑のWindowsSDK編ってとこ読むといい。長いしめんどくさいけどね。 >VC++2005ExpressEditionではちょっとメニューのエディタないからよけい大変 > やってみようと思います。 >WindowsSDKでの開発がめんどくさいから >MFCだとか、VisualBasicとかもっと簡単にウインドウ出せるアプリ作れるものが出来てきたんだよ。 >.NETアプリならVC++2005でも視覚的にウインドウアプリ作れるんだけどね。 > わかりました。 CLRも考えようかと思います。
- 177 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 00:46:29 ]
- 質問です、以下の構造体があったとします↓
struct Test{ int nMem; char strMem[20]; }; 上記の構造体に、関数をひとつ追加します。 struct Test{ int nMem; char strMem[20]; void Clear(){ nMem = 0; strcpy(strMem, ""); } }; そして両者のsizeofをとってみたのですが、両者とも24バイトとなりメンバ関数によるサイズの増大が見られません。 これは、コンパイラがTest::Clear()の呼び出しを該当するメモリアドレスに置換しているからなのでしょうか? 多分そうだと思うのですが、参考となるようなものが無く………詳しい方、宜しくお願い致します。
- 178 名前:177 mailto:sage [2007/01/25(木) 00:47:31 ]
- 追記です、実行環境はVS2003、VS2005、BCCです。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 02:54:53 ]
- >>177
メンバ関数も、機械語のレベルにすれば単なる関数であることに変わりはない。 Cで擬似的に書けばこんな感じになる。 struct Test { int nMem; char strMem[20]; }; void Test_Clear(Test* this) { nMem = 0; strcpy(strMem, ""); }
- 180 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 11:58:29 ]
- C++の例外の使い方を解説した参考書で、オススメのものを教えてください。
文法自体の解説ではなく、使いこなしのテクニックなどについてです。
- 181 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 01:00:56 ]
- >>180
例外の落とし穴的なことなら Exceptional C++ にあるよ。 # もし持ってないんだったら C++ 使いとして C++ in-Depth Series は # 揃えておくことをオススメするですよ。
- 182 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 14:17:33 ]
- >>181
ありがとうございます。 洋書には、知っておくべきノウハウの本があるのに、 和書には、言語仕様の解説本しかないんですよね。 洋書で足りてるから書く必要がないのかもしれないけど。
- 183 名前:177 mailto:sage [2007/01/26(金) 15:34:18 ]
- 遅れてしまいました、179さんありがとうございます。
- 184 名前:デフォルトの名無しさん [2007/01/28(日) 03:25:47 ]
- メインで作ったポインタをオリジナル関数内で配列領域を宣言するときはどう関数を受け渡せばいいのでしょうか。
void o(int **mem) { int i; mem=(int **)calloc(10, sizeof(int)); for(i=0; i<10; i++) mem[i]=(int **)calloc(10, sizeof(int)); } int main() { int **mem; o( );//この部分 }
- 185 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:06:30 ]
- >>184
void o(int ***mem) { int i; *mem=(int **)calloc(10, sizeof(int)); for(i=0; i<10; i++) (*mem)[i]=(int **)calloc(10, sizeof(int)); } int main() { int **mem; o(&mem);//この部分 }
- 186 名前:デフォルトの名無しさん [2007/01/28(日) 04:11:30 ]
- >>185
それはやったのですが、 o内で数値を代入して、 メイン側でその数値を使おうとすると反映されていないみたいでエラーが・・・。
- 187 名前:デフォルトの名無しさん [2007/01/28(日) 04:15:23 ]
- >>185
後コンパイル時に引数が異なるというエラーが。 間接参照のレベルが 'int ***' と 'int ****__w64 ' で異なっています。 仮引数および実引数と異なります。
- 188 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:16:17 ]
- >>186
だったらここだろ void o(int ***mem) { int i; *mem=(int **)calloc(10, sizeof(int *)); for(i=0; i<10; i++) (*mem)[i]=(int *)calloc(10, sizeof(int)); } ちなみにどんなエラーが出たのか明記しないとわからん
- 189 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:17:31 ]
- >>187
メインで int ***mem; とやってるんじゃないか?
- 190 名前:デフォルトの名無しさん [2007/01/28(日) 04:22:36 ]
- >>188
完走しました。 ありがとうございました。 >>189 それはなかったです。
- 191 名前:デフォルトの名無しさん mailto:age [2007/01/28(日) 06:52:30 ]
- フリーウェアで、
クラス図を作れるものってありますか?
- 192 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 08:24:55 ]
- C/C++の質問しろよ
umlmemo
- 193 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 08:29:20 ]
- doxygen
- 194 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:07:10 ]
- JUDE Community
- 195 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:33:04 ]
- >>192-194
ありがとうございました。 >C/C++の質問しろよ はい、すみません。
- 196 名前:デフォルトの名無しさん [2007/01/28(日) 17:09:42 ]
- void qsort ( void* base , size_t nmemb , size_t size, int(*compar)(const void *, const void *) )
↑のを自作で作りたいのですが、誰かサンプルを作っていただけないでしょうか? 初心者でスマソorz
- 197 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:14:38 ]
- www.google.co.jp/search?q=qsort.c
好きなのを持ってけ
- 198 名前:デフォルトの名無しさん [2007/01/28(日) 17:20:36 ]
- C++でゲーム制作プログラミング勉強しようと思ってるのですが
おススメの参考書を教えていただきたいです。 本屋に行ったのですが、何を買えばいいかわからずに退散してきましたorz 要望を挙げれば実際にゲーム制作しながら学べるような参考書。 RPGではなくアクションゲーに重きを置いた参考書を望んでいます。 プログラミング経験はJAVAを2年ほど、Perlを授業でかじった程度です。 よろしくお願いします
- 199 名前:デフォルトの名無しさん [2007/01/28(日) 17:21:54 ]
- >>197
どれが自作のやつかよく分かんないですorz ほんと無知でスマソ
- 200 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:40:28 ]
- ちみの云う「自作」の概念がよく分からないな。
チミが作ったわけじゃねーから、みんな他作だろう?
- 201 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:47:16 ]
- ワロタ
- 202 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 18:08:28 ]
- >>184
なんか見ていてクラクラしてくるコードだなぁ。 サイズが固定なら配列を使ったほうがいいんじゃないか。 >>196 正しい日本語で。 qsortの使用例 と qsortの実装例 のどっちが欲しいの? >>198 問題をしっかり切り分けよう。 ざっと乱暴に分けただけでも、 □ C++ □ OSのAPIのうち、ゲームで使うものについて □ ゲーム特有のアルゴリズム という3つに分けられる。 それぞれ独立した話なので、それぞれ別々に学んだほうがいい。 このスレで質問すべきなのは、 「Javaをある程度やった人にオススメのC++の教科書を教えてください」 ということだよ。 で、Javaを2年もやったのであれば、入門書的なのは無駄が多い。 まずは、↓のような簡単なものでいいので、CとC++の文法の概要を、軽く読む。 ttp://www5c.biglobe.ne.jp/~ecb/c/c00.html ttp://www5c.biglobe.ne.jp/~ecb/cpp/cpp00.html その上で、C++の有名な参考書群を読めば習得は速い。
- 203 名前:196 [2007/01/28(日) 18:21:24 ]
- >>202
すみません。実装例の方です
- 204 名前:198 [2007/01/28(日) 21:01:49 ]
- >>202
色々と詳しく教えていただきありがとうございます とりあえず教えていただいたサイトを見て基本的な所を理解してから 参考書を購入して勉強しようと思います。 ありがとうございました
- 205 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:02:45 ]
- >>203
GNUのglibcとか、 マイクロソフトならVC++に付属のCランタイムのソースコードとか。
- 206 名前:デフォルトの名無しさん [2007/01/28(日) 21:23:48 ]
- #include "DxLib.h"
struct CharaData{ int x; int y; int mae,hidari,migi,tama; }; struct CharaData jikidata; int jikinomuki=0; int statusboard=LoadGraph("StatusBoard.png"); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE);// ウインドウモードに変更 SetGraphMode(600,480,16);//ウィンドウの大きさ if(DxLib_Init()==-1) return(-1);//DXライブラリ初期化 WaitKey(); DxLib_End();//DXライブラリ終了 return(0);//終了 } エラーがでてないのにウィンドウが表示されません。 PCの動作が重くなっているので実行はされてると思うのですが・・・ 誰かわかる人いましたら解決策を教えてください OTL
- 207 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:37:23 ]
- ChangeWindowMode(TRUE);
SetGraphMode(600,480,16); はDXライブラリの関数だろ?だったら if(DxLib_Init()==-1) return(-1);//DXライブラリ初期化 の後に書くんじゃないか? 順序立てて考えて問題箇所を洗い出せ
- 208 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:41:39 ]
- int statusboard=LoadGraph("StatusBoard.png");
これはヤバいんじゃないか? WinMainよりも前に実行されるぞ。
- 209 名前:デフォルトの名無しさん [2007/01/29(月) 08:50:37 ]
- Choge hoge = new Choge();
と Choge hoge; は何が違うんでしょうか? ヒープ領域とスタック領域の違いでしょうか? どう使い分けたらいいでしょうか?
- 210 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 10:55:12 ]
- >>209
前者はdeleteする必要がある。 そのクラスが巨大でないのなら、後者で充分。 巨大であるとかクラスの特性上必要があるとかで前者を使うのなら、auto_ptrの使用を検討したほうがよりよい。
- 211 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 12:10:01 ]
- Choge* hoge = new Choge();
ではなくて Choge hoge = new Choge(); なのであれば、それはメモリリークしている可能性があるよ。 Choge hoge ; Choge* p = new Choge() ; hoge = p ; ただし、Choge::operator=(const Choge* p) が存在する、気持ち悪いクラスの場合だが。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 13:14:13 ]
- >>211
>Choge hoge = new Choge(); > >なのであれば、それはメモリリークしている可能性があるよ。 そもそもコンパイル通らないんじゃないか?
- 213 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 15:27:32 ]
- Cについて質問です。
double型変数をfprintfで小数点以下の有効数字全てを表示したいのですが、 どのようにすればよいでしょうか。 今は%.20leとか適当な数字で表示させています。 できれば%lfの形式で表示したいのですが。
- 214 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 16:30:09 ]
- >>213
%.20gじゃダメ? 値が適当な範囲ならf形式で出るけど。
- 215 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 17:53:53 ]
- #define isupper(c) ( (c) >= 'A' && (c) <= 'Z' )
↑これ、パラメータが2箇所で評価しているんですけど、 問題ですか?普通に使えるような気がボクはするんですが...
- 216 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:05:21 ]
- >>215
ASCIIのようにアルファベットがリニアに並んでいる環境なら使えますね。 評価の副作用がある点に関しては、関数の引き数に副作用の起きるようなコードを書く香具師が阿呆なので ドキュメントに明示してあれば問題ないでしょう。
|

|