#include <iostream>
using namespace std;
//클래스는 첫자는 반드시 대문자
class Circle {
public: // 모든 곳에서 접근 가능
// 멤버변수
int radius;
// 멤버함수
double getArea();
};
//멤버함수 정의
double Circle::getArea() {
// 클래스 영역
return 3.14 * radius * radius;
}
int main() {
Circle donut; //객체 생성
donut.radius = 1; // 객체이름.멤버
double area = donut.getArea();
cout << "donut 면적은 " << area << endl;
Circle pizza;
pizza.radius = 30;
area = pizza.getArea();
cout << "pizza 면적은 " << area << endl;
}
pizza 부분 아래 코드로도 가능.
// 동적 객체 생성
Circle *pizza = new Circle();
pizza-<radius = 30;
area = pizza->getArea();
cout << "pizza 면적은 " << area << endl;
delete pizza; // new 했으면 꼭 delete 해줘야 됨 . 안되면 메모리 누수현상(메모리 낭비) 나타남
#include <iostream>
using namespace std;
class Rectangle {
public:
int width;
int height;
double getArea();
};
double Rectangle::getArea() { // outline 함수
return width * height;
}
int main() {
Rectangle rect;
rect.width = 3;
rect.height = 5;
cout << "사각형 면적은 " << rect.getArea() << endl;
return 0;
}
inline함수 사용해서도 가능하다. 하지만 위의 방법이 일반적임
동작속도의 차이는 미묘하나
가독성, 직관성을 고려해서 inline/outline 방법을 골라서 쓰면 된다 .. (함수의 길이가 길 경우엔 outline)
inline void setRadius(int r) {
radius = 4;
inline 함수로 쓸 경우에 void 앞에 inline 붙여도 되고 안붙여도 됨.
#include <iostream>
using namespace std;
class Rectangle {
public:
int width;
int height;
double getArea() { // inline 함수. 짧은 함수일 경우엔 inline 으로 쓰는것이 동작속도가 빠르다.
return width* height;
}
};
int main() {
Rectangle rect;
rect.width = 3;
rect.height = 5;
cout << "사각형 면적은 " << rect.getArea() << endl;
return 0;
}
'C++ > c++수업' 카테고리의 다른 글
캡술화 private public (0) | 2020.10.19 |
---|---|
생성자 (0) | 2020.10.14 |
입력받는수의 합을 구하는 프로그램 (0) | 2020.10.13 |
QQ 중복 제거 하는중 - 간단한 로또 프로그램. (0) | 2020.10.13 |
음료수 자동판매기 프로그램 (0) | 2020.10.13 |