std::vectorの使い方
Posted: 2008年11月22日(土) 11:43
テンプレ使わせていただきます。
[1] 質問文
[1.1] std::vectorを使用してクラスを動的に確保することと、確保したクラスを引数にしないで別のクラスの関数内で使用(うまく言えないのでやりたいコードを書きます。)。
[1.2] std::vector<Player>
[1.3] vectorの使い方がいまいちわからない。
1>main.cpp
1>c:\myvc\esth\main.cpp(30) : error C2228: '.resize' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'std::vector<_Ty> [1]' です。
1> with
1> [
1> _Ty=Player
1> ]
[1.4] vectorを使用すること。また、classを型に指定すること。
[2] 環境
[2.1] Windows VISTA
[2.2] VC++ 2008EE
[3] その他
C言語、C++ともによくわかってないです。一応龍神録の館を理解するくらいならできるとは思うのですが……
ライブラリはDxLibを使用しています。
[1] 質問文
[1.1] std::vectorを使用してクラスを動的に確保することと、確保したクラスを引数にしないで別のクラスの関数内で使用(うまく言えないのでやりたいコードを書きます。)。
[1.2] std::vector<Player>
---main.cpp--- #include "class.h" using namespace std; char key[256]; int RefreshTime; int input; vector<Player> player[1]; BG bg(320, 10, 0); int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lPc, int nC){ ChangeWindowMode(TRUE); if(DxLib_Init() == -1)return(-1); SetDrawScreen(DX_SCREEN_BACK); //初期化などの処理を入れる SetDrawMode(DX_DRAWMODE_BILINEAR); Img_Ini(); while(ProcessMessage() == 0&&GetHitKeyStateAll(key) == 0){ RefreshTime = GetNowCount(); //今の時間を取得 ClsDrawScreen(); //裏画面のデータを全て削除 //実際の処理を入れる(初期化などを除く bg.Center(); player.resize(256); ScreenFlip(); //裏画面データを表画面へ反映 while(GetNowCount() - RefreshTime < 17); //1周の処理が17ミリ秒になるまで待つ } DxLib_End(); return (0); } ---class.cpp--- ~中略~ void BG::Center()const { SetDrawArea(x-10, 0, x+10, 480); DrawBox(x-10,0,x+10,480,Cr1,TRUE); DrawBox(320-8,480-player.life/player.Get_lifemax()*480,320-2,480,Cr2,TRUE); }BGクラスの関数内でplayerクラスの関数が使いたいんです。どうにもうまく言えないのですが。
[1.3] vectorの使い方がいまいちわからない。
1>main.cpp
1>c:\myvc\esth\main.cpp(30) : error C2228: '.resize' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'std::vector<_Ty> [1]' です。
1> with
1> [
1> _Ty=Player
1> ]
[1.4] vectorを使用すること。また、classを型に指定すること。
[2] 環境
[2.1] Windows VISTA
[2.2] VC++ 2008EE
[3] その他
C言語、C++ともによくわかってないです。一応龍神録の館を理解するくらいならできるとは思うのですが……
ライブラリはDxLibを使用しています。