카테고리 없음

2021-04-16 c++ (동적 클래스)

hyestar 2021. 4. 16. 12:46

#define _CRT_SECURE_NO_WARNINGS //strcpy쓰려면 써줘야됨!!
#include
#include

class student {
public: //원래 지역에서만 사용할 수 있는 변수였는데 public때문에 사용가능
//(public-어디서든 접근 가능, private-해당클래스에서만 접근가능, protected-해당클래스 + 자식클래스 접근가능, package-패키지 내에서 접근 가능 )
int std_no;
char name[100];
int gender;

void printstudentInfo() {
    printf("학생 번호 : %d\n", std_no);
    printf("학생 이름 : %s\n", name);
    printf("성별 : %s\n", gender == 0 ? "남자" : "여자");
    //인라인 조건절 --> (조건절) ? 값1 : 값2
}

};

int main() {
student* ps = new student(); //ps는 스택영역에 생기고 new는 객체 생성하는 것인데 힙영역에 만들어짐(리모컨이 하나씩있는데 그 리모컨을 student껄 ps에 덮어쓰기하는것과 같다)
ps->gender = 0; // 포인터로 사용하면 .이 아니라 -> 이걸로 바뀐다는 것을 알아야 됨.
ps->std_no = 50;
strcpy(ps->name, "임꺽정");
ps->printstudentInfo();
delete ps;
return 0;
}

// 정적으로 만들어 줄때는 동적할당과 다르기 때문에 malloc하면 free()해줘야 했다 따라서 new는 delete ..해줘야됨;
// 지금은 main 함수가 끝났으니깐 끝난건데 다른 함수에 사용되게 되면 메모리 누수가 일어날 수 있다.

728x90