우리는 다음과 같이이 방법 :: 시도 할 수 있음은 아래의 장점은 코드를 여러 번 쓸 필요는 없지만, 실제 생성 된 코드가 될 수 있다는 것입니다 큰.
#include <iostream>
using namespace std;
template <int t>
class Fighters {
protected :
static const double Fattack;
double Fhealth;
static const double Fdamage;
static int count;
public :
Fighters(double Fh) : Fhealth(Fh) { }
void FighterAttacked(double damage) {
Fhealth -= damage;
}
double getHealth()
{
return Fhealth;
}
static int getCount()
{
//cout << count << endl;
return count;
}
};
const double Fighters<1>::Fdamage = 200.0f;
const double Fighters<1>::Fattack = 0.6f;
int Fighters<1>::count = 0;
class Humans : public Fighters<1> {
public :
Humans(double Fh = 250) : Fighters<1>(Fh) { count++; }
};
const double Fighters<2>::Fdamage = 40.0f;
const double Fighters<2>::Fattack = 0.4f;
int Fighters<2>::count = 0;
class Skeletons : public Fighters<2> {
public :
Skeletons(double Fh = 50) : Fighters<2>(Fh) { count++; }
};
int main()
{
Humans h[100];
Skeletons s[300];
cout << Humans::getCount() << endl;
cout << Skeletons::getCount() << endl;
return 0;
}
이것은 다른 코드 예제의 일부입니다. 다른 많은 데이터는 신경 쓸 수 있지만 개념을 볼 수 있습니다.
그래, 질문을 게시 한 후 발견되었습니다. 질문을 게시하고 질문을 삭제하려고 시도한 후 5시에 답변을했습니다. 귀하의 응답과 2 득표로 인해 질문을 삭제하는 것이 거부되었습니다. – chmike