반응형
/* https://ehpub.co.kr
C++ 예제 - 언제나 휴일
회원 클래스 정의 - 정적 멤버 필드 캡슐화
*/
#include <string>
#include <iostream>
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++] (0) | 2020.07.24 |
---|---|
개체 출력자 실습 – 회원 클래스 및 쉬프트 연산자 중복 정의 [C++] (0) | 2020.07.22 |
다형성 실습 – 오케스트라, 음악가, 피아니스트, 드러머 [C++] (0) | 2020.07.21 |
상품과 할인 상품 – 상속 실습 [C++] (0) | 2020.07.17 |
복소수 클래스 정의 – 캡슐화 실습 [C++] (0) | 2020.07.14 |