C++

클래스 객체 배열을 이용한 입력과 동적할당.

빛나는 미래 2011. 11. 13. 21:38

4명의 주소록과 그에 관한 정보를 저장하는 클래스이다.

//NameCard.h

#include <iostream>

class NameCard
{

 char* name;
 char* tel;
 char* regi;
 char* position;

public:
 NameCard()
 {

 }
 NameCard(char* _name,char* _tel,char* _regi,char* _position)
 {
  name=new char[strlen(_name)+1];
  strcpy(name,_name);
  tel=new char[strlen(_tel)+1];
  strcpy(tel,_tel);
  regi=new char[strlen(_regi)+1];
  strcpy(regi,_regi);
  position=new char[strlen(_position)+1];
  strcpy(position,_position);
 }
 ~NameCard()
 {
 delete []name;
 delete []tel;
 delete []regi;
 delete []position;
 }
 void set(char* _name,char* _tel,char* _regi,char* _position);
 void showdata();
 };
//NameCard.cpp

#include <iostream>
#include "NameCard.h"

using namespace std;
void NameCard::showdata()
{
 cout<<"name = "<<name<<' '<<"register : "<<regi<<' '<<"tel : "<<tel<<' '<<"position : "<<position<<endl;
}
void NameCard::set(char* _name,char* _tel,char* _regi,char* _position)
{
 name=new char[strlen(_name)+1];
 strcpy(name,_name);
 tel=new char[strlen(_tel)+1];
 strcpy(tel,_tel);
 regi=new char[strlen(_regi)+1];
 strcpy(regi,_regi);
 position=new char[strlen(_position)+1];
 strcpy(position,_position);
}


//main.cpp

#include "NameCard.h"
#include <iostream>
using namespace std;

int main()
{
 char _name[10];
 char _regi[100];
 char _tel[100]; 
 char _position[100];

 //NameCard namecard("박xx","0109x96xxxx","집","대장");
 NameCard namecard[4];
 for(int i=0;i<4;i++)
 {
  cout<<"이름 입력 : "; cin>>_name;
  cout<<"주소 입력 : "; cin>>_regi;
  cout<<"전번 입력 : "; cin>>_tel;
  cout<<"직급 : ";      cin>>_position;
  namecard[i].set(_name,_tel,_regi,_position);
  namecard[i].showdata();
 }
 
 return 0;
}