본문 바로가기
C++/c++수업

소스파일cpp ,헤더파일h 분리 예제 (p136)

by sj0020 2020. 10. 19.

 

 




Circle.h

//#pragma once
#ifndef CIRCLE_H__
#define CIRCLE_H__  

#endif // !__CIRCLE_H__

class Circle {
private: //변수는 private
	int radius;

public:
	Circle(); // 기본 생성자. 생성자는 타입이 없음.
	Circle(int r); // 매개 변수 있는 생성자

	~Circle();	// 소멸자
	// getter
	double getArea();

	// setter. 
	inline void setRadius(int r) {
		radius = 4;
	}
};

 

Circle.cpp

#include <iostream>
#include "Circle.h"
using namespace std;


Circle::Circle() {
	cout << "기본 생성자 호출\n";
	radius = 1;
	cout << "반지름 " << radius << "인 원 생성" << endl;
}

Circle::Circle(int r) {
	cout << "생성자 호출\n";
	radius = r;
}

double Circle::getArea() {
	return 3.14 * radius * radius;
}

Circle::~Circle() {
	cout << "소멸자 호출" << endl;
}

 

CircleMain.cpp

#include <iostream>
#include "Circle.h"
using namespace std;

int main() {
	Circle donut; //객체 생성
	donut.setRadius(7);
	cout << "donut 면적은 " << donut.getArea() << endl;

	Circle pizza(30);
	double area = pizza.getArea();
	cout << "pizza 면적은 " << area << endl;
}

 

이렇게 분리해서 쓰는 이유 ? - 클래스를 2개 이상 사용 할 경우 장점이다