반응형


//*************************************************
// static 키워드 !! 
//*************************************************
#include 

using namespace std; 

// static 멤버 변수  :   클래스당 하나의 변수만 필요한 경우 !!   
// static 멤버 함수 

class KY_Student
{	
public: 
	static char SchoolName[100]; //학교이름  
            int m_age; 
};
// static 멤버 변수는 반드시 외부에서 초기화가 되어야 한다!! 
char KY_Student::SchoolName[100] = "건양대학교"; 	



void main()
{
	KY_Student s[5];
	// 클래스 이름을 통해 접근 !! 
	// static멤버변수는 객체마다 할당되는 것아리나 클래스당 1개가 할당 !! 
	// 객체가 아닌 클래스의 이름으로 접근가능하다 !! 
	cout << KY_Student::SchoolName << endl;

}



//*****************************************************
//	static  멤버 함수와 함수의 활용 !! 
//*****************************************************
#include 
using namespace std;


// 마린 !! 
class Marin 
{
public: 
                 int m_hp;    //체력 
    const static  int m_price; //가격
			static int m_att;	   // 공격력 
			static int m_def;    // 방어력 
	
public : 
	// setter/getter 
	int getHp()	 const { return m_hp; }
	int getPrice() const  { return m_price; }
	int getAtt()   const  { return m_att; } 
	int getDef()   const  { return m_def;}
	
	// static멤버 함수안에서는 static멤버 변수만 접근 할수 있다 !! 
	static int Attup(){ return m_att++;  m_hp++;   }
	static int Defup(){ return m_def++;  }


	Marin() // : m_price(50) //const멤버 초기화 
	{
		m_hp = 40; 
		m_att = 1; 
		m_def = 1; 
	}
	void ShowMarinInfo() const 
	{
		cout << "가격 : "    << m_price << endl;
		cout << "체력 : "    << m_hp << endl; 
		cout << "공격력  : " << m_att << endl; 
	}

};
// 외부에서 초기화 !! 
const int Marin::m_price = 50; 
int Marin::m_att = 1; 
int Marin::m_def = 1; 



void main()
{	

	Marin::Attup(); 
	Marin::Defup(); 


}


'C, C++' 카테고리의 다른 글

[C++] this 이해  (0) 2014.11.18
[C++] 캡슐화  (0) 2014.11.18
[C++] const 멤버의 이해, 활용, 사용  (0) 2014.11.18
[C++] 추상화  (0) 2014.11.18
[C++] 생성자  (0) 2014.11.18

+ Recent posts