#include <iostream>
using namespace std;
#pragma warning(disable:4996)
class Myclass
{
private:
int age;
char id;
char * name;
//멤버함수(=메소드): 기능
public:
Myclass(int mage, char mid, char* mname); // 생성자 원형
void getData(); // 메소드 원형(선언)
~Myclass();
};
Myclass::Myclass(int mage, char mid, char* mname) :age(mage), id(mid) // 생성자 정의, 멤버 이니셜라이저를 이용한 멤버 초기화
{
name = new char[10]; // 메모리 동적 할당
strcpy(name, mname);
}
Myclass::~Myclass()
{
delete[]name;
cout << "객체 소멸 완료!" << endl;
}
void Myclass::getData() // 메소드 정의
{
cout << id << " " << name << " " << age << endl;
}
int main()
{
Myclass sc1(25, 'W', "sujin");
sc1.getData();
return 0;
}
동적 메모리 할당
#include <iostream>
using namespace std;
#pragma warning(disable:4996)
class Human {
private:
char* name;
char id[15];
int age;
public:
Human(const char *aname, char aid[15], int aage) {
name = new char[strlen(aname) + 1];
strcpy(name, aname);
strcpy(id, aid);
age = aage;
}
~Human() {
delete[] name;
}
void getData();
};
void Human::getData() {
cout << "이름: " << name << "\t" << "주민번호: " << id << "\t" << "나이: " << age << endl;
}
int main() {
Human sujin("이수진", "991130-1112233", 25);
sujin.getData();
return 0;
}