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를 접근하였다.