Studies/C++

10 클래스 생성을 통한 문제해결 -클래스의 생성자 및 소멸자에 대한 이해

쿠뱃봉 2022. 2. 4. 18:37

1. 개념

(1) const static 멤버와 mutable

class Sosimple{
private: 
	int num1;
    mutable int num2;
public:
	SoSimple(int n1,int n2)
    	:num1(n1),num2(n2)
    {}
    void CopyToNum2() const
    {
     num2=num1;
    }

};

const 멤버함수는 변수를 바꿀 수 없는데 num2가 mutable이기 때문에 (예외적으로)

const 멤버함수에서도 num2=num1이 가능하다.

 

(2)클래스의 friend 선언

friend 선언은 private 멤버의 접근을 허용하는 선언이다.

Class Boy{
private:
	int height;
    friend class Girl;
public:
	Boy(int len):height(len)
    {}
}

Girl 클래스에서 Boy의 private 멤버에 직접 접근이 가능하다.

 

class Girl{
private:
	char pnum[20];
public:
	Girl(char* num){
    	strcpy(pnum,num);
    }
    void ShowYourFriendInfo(Boy &frn){
    	cout<<"His height: "<<frn.height<<endl;
    }
};

Girl 클래스에서 Boy 클래스의 private 멤버인 height를 접근하였다.