변수는 private , 함수는 public 으로 작성하는 것이
캡슐화에 기반한 class 작성방법.
#include <iostream>
using namespace std;
class Circle {
private: //변수는 private
int radius;
public: // 함수는 외부에서 접근 가능하도록 public
Circle(); // 기본 생성자. 생성자는 타입이 없음.
Circle(int r); // 매개 변수 있는 생성자
~Circle(); // 소멸자
// getter
double getArea();
// setter.
void setRadius(int r) {
radius = 4;
}
};
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;
}
int main() {
Circle donut; //객체 생성
//donut.radius = 7; - 으로 못씀 . 변수는 private 으로 위에 선언해줬기 때문에 캡술화에 위반됨.
donut.setRadius(7); // donut.radius = 7 이 아닌 이 방법으로 써줘야함
cout << "donut 면적은 " << donut.getArea() << endl;
Circle pizza(30);
double area = pizza.getArea();
cout << "pizza 면적은 " << area << endl;
}
'C++ > c++수업' 카테고리의 다른 글
헤더파일, cpp파일 분리. p140 Adder, calculator (0) | 2020.10.19 |
---|---|
소스파일cpp ,헤더파일h 분리 예제 (p136) (0) | 2020.10.19 |
생성자 (0) | 2020.10.14 |
cpp class 원넓이, 사각형면적 (0) | 2020.10.14 |
입력받는수의 합을 구하는 프로그램 (0) | 2020.10.13 |