본문으로 바로가기

C++ Class

category [ IT ]/C++, 자료구조 2015. 6. 24. 20:40

- Class 


구조체가 확장된 개념으로 객체를 만들기 위한 설계도

추상화 :  class 설계 하는 과정
객체 : class를 이용해 만들어낸 실체 

┏ 구조체 - 구조체 변수
┗ class - 객체

class 선언
class class명
{
자료형 변수명;
함수 ()
{
}
};

객체 생성
class명 객체명 ;
#include <iostream>
#include <cstring>
class Member
{
public:
char name[10], tel[15];
int age, fee;
void SetData(char* _name, int _age, char * _tel, int _fee)
{ strcpy(name,_name);
age = _age;
strcpy(tel,_tel);
fee = _fee;
}
};
void main(void)
{ Member mb;
mb.SetData("홍길동",20,"010-123-1234",30000);
std::cout<<mb.name<<"  "<< mb.age<<"   "
<<mb.tel<< "   "<<"\\"<<mb.fee<<std::endl;
}

객체지향 프로그래밍 작성 순서
1. 대상 선정 - > class 작성 준비
2. 속성 파악 - > 멤버 변수 선언
3. 기능 파악 - > 멤버 함수 작성

ex : 계좌관리 프로그램
1. 대상선정 
계좌 객체
회원 객체
 
2. 속성 파악
계좌 객체 -> 계좌번호 금액 회원이름

3. 기능 파악
계좌 생성
입금 
출금
계좌 조회

#include <iostream>
#include <cstring>
#include <iomanip>
#include <conio.h>


int c;
typedef class Member
{
public:
int accountNumber;
int money;
char memberName[10];
void SetAccount()
{
std::cout<<"계좌 번호를 적어주세요"<<std::endl;
std::cin>>accountNumber;
std::cout<<"이름을 적어주세요"<<std::endl;
std::cin>>memberName;
std::cout<<"금액을 적어주세요"<<std::endl;
std::cin>>money;
}
void InputMoney()
{ int inmon;
std::cout<<"금액을 적어주세요"<<std::endl;
std::cin>>inmon;
money = money + inmon;
}
void OutputMoney()
{
int outmon;
std::cout<<"금액을 적어주세요"<<std::endl;
std::cin>>outmon;

if(money>outmon)
money = money - outmon;
else
std::cout<<"잔액이 부족합니다"<<std::endl;

}

void DisplayAccount()
{
std::cout<<std::setw(23)<<"고객 이름"<<std::setw(23)<<"계좌 번호"<<std::setw(23)<<"잔액"<<std::endl;
std::cout<<std::setw(23)<<memberName<<std::setw(23)<<accountNumber<<std::setw(23)<<money<<std::endl<<std::endl;

}
}mb;

void main()
{
mb * pMa;

pMa = new mb;
while(1)
{

std::cout<<"원하는 기능을 눌러주세요"<<std::endl;
std::cout<<"1. 계좌 등록"<<std::endl;
std::cout<<"2. 입금"<<std::endl;
std::cout<<"3. 출금"<<std::endl;
std::cout<<"4. 계좌 조회"<<std::endl;
std::cout<<"5. 종료"<<std::endl;
std::cin>>c;
system("cls");



switch(c)
{
case 1 : pMa->SetAccount(); break;
case 2 : pMa->InputMoney(); break;
case 3 : pMa->OutputMoney(); break;
case 4 : pMa->DisplayAccount(); break;
case 5 : {delete pMa; exit(1); }
}
system("cls");
}
}