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

cpp class 원넓이, 사각형면적

by sj0020 2020. 10. 14.
#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