본문 바로가기

C130

상속의 형태 여러 글을 쓰는것 보단 소스를 보는게 이해가 훨씬 빠를 듯 하다. #include // Inher_A 클래스, // 각각 private, protected, public을 가지고 있다. class InHer_A { int private_int_a; protected: int protected_int_a; public: int public_int_a; // 값을 바꾸기 위한 SetData함수 void SetData() { // 3개의 변수 모두 내부에서 변경하는것에 대해 문제가 없다. private_int_a = 1; protected_int_a = 2; public_int_a = 3; } }; // Inher_A클래스를 public 상속을 한 Inher_B 클래스 class InHer_B : public.. 2010. 3. 26.
상속의 객체 생성, 소멸 과정 상속의 객체 생성과 소멸 과정에 대해서 알아보자. 가장 중요한 것은 Inher_A 클래스를 상속 받은, Inher_B 클래스를 생성할때, A클래스의 생성자를 먼저 들린 후, B클래스의 생성자를 수행한다는 것이다. 일단 소스를 보자. #include class Inher_A { public: Inher_A() { std::cout 2010. 3. 26.
상속의 개념 앞에서 protected설명을 하면서 상속을 다루었기 때문에 순서가 바뀐거 같긴 하지만, 상속에 대해서 살펴 보자. 상속은 이전 클래스가 가지고 있던, 멤버 변수, 멤버 함수를 다른 클래스에서 그대로 쓰거나, 수정, 추가 하기 위해서 사용한다. 일단 상속의 깊은 개념은 천천히 살펴 보고, 어떤 식으로 선언하고 사용하는지만 확인. #include class AAA { public: int A_a; void ShowA_a() { std::cout 2010. 3. 24.
public: private: 그리고 protected: public: 클래스 내부, 외부에서 모두 사용가능.(다른 클래스가 접근 가능) private: 클래스 내부 에서만 사용가능, 외부에서는 불가능.(다른 클래스가 접근 불가능) protected: 클래스 내부에서 사용가능, 외부에서 사용 불가능.(상속을 받은 다른 클래스가 접근 가능) 쉽게 표현하면 이와 같고. public: private:에 대해서는 이미 앞에서도 많이 다루었으니 protected:에 대해서만 한번 훑어 보자. 2010. 3. 24.
explicit, mutable 명시적인 것만을 허용하는 explicit 키워드 #include class AAA { public: // 묵시적인 변환을 막는 explicit 키워드 explicit AAA(int n) { std::cout 2010. 3. 24.
static static, 지역변수로 선언되어 있는 변수를 전역 변수처럼 사용한다. C++, 클래스에서 사용하는 static은 크게 2가지 특징을 가지고 있는데 첫번째로 public안에 선언된 멤버 변수에 static을 붙히면 전역 변수처럼 사용이 가능하다. (main 함수가 호출 되기 이전에 메모리 공간에서 초기화가 되기 때문이다.) #include class AAA { public: // public에 static을 선언 static int a; }; // 일단 이곳에서 초기화를 한번 해주어야 한다. int AAA::a = 10; void main() { std::cout 2010. 3. 24.