언어 공부/C++

2. 클래스와 생성자, 소멸자

LTSGOD 2023. 1. 14. 11:00

클래스: 공통적인 성질의 집합

- 멤버변수, 멤버함수(메서드)로 구성

- class 선언부와 구현부로 나뉨.

 

  • 클래스 선언부 -> .h파일
  • 클래스 구현부 -> .cpp 파일
  • main함수 -> main.cpp

나누는 이유: 프로그램을 재사용하는데 편리 하기 때문이다.

 

조건컴파일

  • 헤더파일의 중복include 문제 방지
#ifndef CIRCLE_H
#define CIRCLE_H





#endif

접근제어자

 

private : 클래스내의 메서드만 접근가능

protected : private + 상속된 개체의 메서드만 접근가능

public: 누구든 접근 가능

 

생성자

  • 객체 생성, 초기화가 목적
  • class 이름 = 생성자 이름
  • 생성 방법
    •  default 생성자(자동생성)
    • user 생성자 정의(자동생성X)
  • return 값 없음
  • 생성자 매개변수 디폴트 값 설정가능 (이 때 디폴트 값 설정한 매개변수는 뒤로 가야한다)

 

소멸자

 

  • 목적: 동적메모리 해제, 파일의 저장, 닫기, network 닫기
  • ~Circle()
  • 묵시적으로 기본소멸자가 자동생성하고 실행함.
  • 중복 선언 불가 -> 매개변수가 없기 때문

 

인라인함수

  • 클래스 선언에 구현
  • 함수호출에 따른 시간 오버헤드를 줄여 실행시간이 빠를수있다.
  • 전체 코드 크기가 증가 할 수 있다.
#include <iostream>

using namespace std;

//선언부
class Student{
  int age;
public:
  Student(int age = 0){this->age = age;}//생성자
  void setName();
  ~Student();//소멸자
};

//구현부
void Student::setName(){
  age = 1;
}