본문 바로가기
Programming/C++

[C++] 5. 생성자와 접근제어

by Lizardee 2024. 1. 29.
5.1 이번 장에서 만들어 볼 프로그램

5.2 생성자(constructor)

: 초기화를 담당하는 함수

--> 객체를 생성할 때 객체를 초기화하는 함수가 자동으로 호출되도록 한다.

class Time {
public:
	int hour, minute;

	// 생성자
	Time(int h, int m) {
		hour = h;
		minute = m;
	}

	void print() {
		cout << hour << ":" << minute << endl;
	}
};
  • 생성자 중복 정의 
  • 디폴트 인수를 사용하는 생성자

5.3 소멸자

: 생성된 객체가 범위를 벗어나면 객체는 소멸된다. 이때마다 호출되는 특정한 멤버 함수가 소멸자이다.


Rect 클래스
#include <iostream>
using namespace std;

class Rect {
public:
	int width, height;

	// 생성자
	Rect(int w, int h) {
		width = w;
		height = h;
	}

	int getArea() {
		return width * height;
	}
};

int main() {
	Rect myRect{ 3,4 };  // 생성자 이용

	cout << "사각형의 넓이: " << myRect.getArea() << endl;

	return 0;
}



5.4 접근 제어(access control)

: 외부에서 특정한 멤버 변수나 멤버 함수에 접근하는 것을 제어하는 것

  • 접근자와 설정자

5.5 객체와 함수

▶ 객체가 함수의 매개 변수로 전달되는 경우

오류!

  

객체의 참조자가 함수의 매개 변수로 전달되는 경우

성공!

#include <iostream>
using namespace std;

class Pizza {
public:
	int size;
	Pizza(int s) {
		size = s;
	}
};

void makeDouble(Pizza& p) {
	p.size *= 2;
}

int main() {
	Pizza pizza(10);
	makeDouble(pizza);

	cout << pizza.size << "인치 피자" << endl;

	return 0;
}