일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C++
- Windows Forms
- 표준 라이브러리 함수
- 알고리즘
- 무료 동영상 강의
- 산책하기 좋은 곳
- 언제나휴일
- 졸업 작품 소재
- 실습
- 강의
- 소켓 통신
- 표준 입출력
- 캡슐화
- 네트워크 프로그래밍
- 소스 코드
- 프로젝트
- c언어
- 안드로이드 앱 개발
- 원격 제어 프로그램
- 언제나 휴일
- 파이썬
- 충남 천안
- 추천
- 동영상
- 유튜브 동영상 강의
- c#
- 실습으로 다지는 c#
- 독립기념관
- 클래스 다이어그램
- 동영상 강의
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
회원 클래스 정의 – 정적 멤버 캡슐화 [C++] 본문
안녕하세요. 언제나 휴일에 언휴예요.
이번 예제는 정적 멤버 캡슐화를 다룰 거예요.
실습은 회원 클래스를 정의합니다.
클래스 다이어그램에서 밑줄로 표시한 멤버가 정적 멤버입니다.
가장 최근에 부여한 회원 번호(lastnum)과 현재까지 생성한 회원 수를 반환하는 메세드(GetMemberCount)를 캡슐화할 거예요.
이 두 개의 멤버는 개체의 멤버가 아닌 형식의 멤버로 형식 이름으로 접근할 수 있어요.
/* https://ehpub.co.kr
C++ 예제 - 언제나 휴일
회원 클래스 정의 - 정적 멤버 필드 캡슐화
*/
#include
#include
using namespace std;
class Member
{
static int last_num;
const int num;
string name;
public:
static int GetMemberCount()
{
return last_num;
}
Member(string name) :num(++last_num)
{
this->name = name;
}
int GetNum()const
{
return num;
}
string GetName()const
{
return name;
}
virtual string ToString()const
{
char buf[256] = "";
sprintf_s(buf, sizeof(buf), "번호:%04d 이름:%s", num, name.c_str());
return buf;
}
bool IsEqual(int num)const
{
return this->num == num;
}
bool IsEqual(string name)const
{
return this->name == name;
}
};
int Member::last_num;
int main()
{
Member* marr[3];
//회원 개체 생성
marr[0] = new Member("홍길동");
marr[1] = new Member("강감찬");
marr[2] = new Member("이순신");
//회원 목록 출력
cout << "현재 회원 수:" << Member::GetMemberCount() << endl;
for (int i = 0; i < 3; i++)
{
cout << marr[i]->ToString() << endl;
}
//회원 이름 검색
string name;
cout << "검색할 이름:";
cin >> name;
bool check = false;
for (int i = 0; i < 3; i++)
{
if (marr[i]->IsEqual(name))
{
cout << marr[i]->ToString() << endl;
check = true;
}
}
if (check == false)
{
cout << "없습니다." << endl;
}
//회원 번호 검색
int num;
cout << "검색할 번호:";
cin >> num;
int i;
for (i = 0; i < 3; i++)
{
if (marr[i]->IsEqual(num))
{
cout << marr[i]->ToString() << endl;
break;
}
}
if (i == 3)
{
cout << "없습니다." << endl;
}
//회원 개체 소멸
for (int i = 0; i < 3; i++)
{
delete marr[i];
}
return 0;
}
언제나휴일 여행 및 산책
'C & C++ > C++ 예제 및 소스' 카테고리의 다른 글
[C언어 소스] 문자열 길이를 계산하는 함수 만들기 (0) | 2025.01.08 |
---|---|
Queue를 이용한 스케쥴러 시뮬레이션 [C++] (0) | 2025.01.08 |
파서 트리를 이용한 계산기 [C++] (0) | 2025.01.08 |
함수 개체, 회원 및 회원 컬렉션 구현[C++] (0) | 2025.01.08 |
개체 출력자 실습 – 회원 클래스 및 쉬프트 연산자 중복 정의 [C++] (0) | 2025.01.08 |
다형성 실습 – 오케스트라, 음악가, 피아니스트, 드러머 [C++] (0) | 2025.01.08 |
상품과 할인 상품 – 상속 실습 [C++] (0) | 2025.01.08 |
복소수 클래스 정의 – 캡슐화 실습 [C++] (0) | 2025.01.08 |