C++で、静的メンバポインタ変数を定義することができません。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
LisetteLander
記事: 147
登録日時: 14年前
住所: 東京

C++で、静的メンバポインタ変数を定義することができません。

#1

投稿記事 by LisetteLander » 13年前

どうしたらいいでしょうか?
Shot.h

コード:

#include "Character.h"
class CShot{
 static CCharacter* PCharacter;
public:
 void GetAdr(CCharacter* hoge);
}
#endif
Shot.cpp

コード:

#include "Shot.h"
#include "Character.h"
CCharacter* CShot::PCharacter;

void CShot::GetAdr(CCharacter* hoge){
 PCharacter=hoge;
}
このようにすると
CCharacterは型名ではありません
とエラーが出ます。
CShotではCCharacterの静的なポインタを保持したいです。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: C++で、静的メンバポインタ変数を定義することができません。

#2

投稿記事 by みけCAT » 13年前

Character.hの中身はどうなっていますか?
Character.hを2重にインクルードしていますが、大丈夫ですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: C++で、静的メンバポインタ変数を定義することができません。

#3

投稿記事 by ISLe » 13年前

class CShotの定義の最後にセミコロンがないからですかね。

アバター
LisetteLander
記事: 147
登録日時: 14年前
住所: 東京

Re: C++で、静的メンバポインタ変数を定義することができません。

#4

投稿記事 by LisetteLander » 13年前

コード:

#ifndef DEF_Character
#define DEF_Character

#include "UnitBase.h"

class CCharacter : public CUnitBase{
protected:
	//移動速度
	double MoveSpeed;
public:

//システム
	void IniMoveSpeed();

	//移動速度取得
	double GetMoveSpeed();
	void GetMoveSpeed(double*);

//ゲーム

	void MoveFront();
	void MoveBack();
	void MoveLeft();
	void MoveRight();

	void MoveAngle(double tmpAngle);
};

#endif
こんな感じになってます。

アバター
LisetteLander
記事: 147
登録日時: 14年前
住所: 東京

Re: C++で、静的メンバポインタ変数を定義することができません。

#5

投稿記事 by LisetteLander » 13年前

ISLe さんが書きました:class CShotの定義の最後にセミコロンがないからですかね。

ありがとうございます。
解決しました。...orz

閉鎖

“C言語何でも質問掲示板” へ戻る