// person.h
#ifndef __PERSON_H__
#define __PERSON_H__
#include <string>
struct Person
{
public:
// constructor & destructor
Person() : name(“”), age(0) {}
Person(std::string n, int a) : name(n), age(a) {}
~Person() {}
// member function
void SetName(std::string n);
void SetAge(int a);
void Print();
protected:
// member variable
std::string name;
int age;
};
#endif
// person.cpp
#include <iostream>
#include “Person.h”
void Person::SetName(std::string n)
{
name = n;
}
void Person::SetAge(int a)
{
age = a;
}
void Person::Print()
{
std::cout << “Name=” << name << ” Age=” << age << std::endl;
}
// main.cpp
#include <iostream>
#include “Person.h”
void main()
{
Person p1(“고소영”, 5); // 인스턴스 생성 (초기화)
Person *p2;
p1.Print(); // 고소영, 5 출력
p1.SetName(“이나영”); // 이름 지정
p1.SetAge(10); // 나이 지정
p1.Print(); // 이나영, 10 출력
std::cout << std::endl;
p2 = new Person; // dynamic allocation
if (p2) {
p2->SetName(“소간지”);
p2->SetAge(20);
p2->Print(); // 소간지, 20 출력
}
delete p2;
}
#include <iostream>
#include “Person.h”
void main()
{
Person p1(“고소영”, 5); // 인스턴스 생성 (초기화)
Person *p2;
p1.Print(); // 고소영, 5 출력
p1.SetName(“이나영”); // 이름 지정
p1.SetAge(10); // 나이 지정
p1.Print(); // 이나영, 10 출력
std::cout << std::endl;
p2 = new Person; // dynamic allocation
if (p2) {
p2->SetName(“소간지”);
p2->SetAge(20);
p2->Print(); // 소간지, 20 출력
}
delete p2;
}