◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
클래스란 자료(데이터)를 좀 더 체계적으로 다루기 위한 사용자 정의 타입이다.
우선, 어떻게 만들고 어떻게 사용하는지부터 살펴본 후 어떤 용도로 사용을 하는지 생각해보자.
우선, 어떻게 만들고 어떻게 사용하는지부터 살펴본 후 어떤 용도로 사용을 하는지 생각해보자.
#includeusing namespace std; // c : 구조체 -> 자료의 묶음. // c++ : 클래스 -> 자료의 묶음 + 보안 + 함수. // 클래스에서... // 생성자를 만들지 않을 경우, 컴파일러가 자동으로 기본 생성자를 만들어준다. // 생성자를 만들경우, 컴파일러는 더이상 기본 생성자를 만들어주지 않는다. // 기본 생성자란, 입력을 받지 않고 모든 멤버변수를 0으로 초기화 한다. class Point //struct Point // 기본값이 public: { //public: int x; //private: // -> 기본값. //protected: int y; //int ary[1000]; public: void Show() { cout << "(" << x << ", " << y << ")" << endl; } void Set(int x, int y) { this->x = x; this->y = y; } // 생성자 -> 생성될 때 호출되는 함수. Point(int x, int y) { this->x = x; this->y = y; } Point() // 함수 오버로딩. { this->x = 0; this->y = 0; } // 소멸자 -> 소멸될 때 호출되는 함수. ~Point() { //cout << "Point Destructor Call" << endl; } }; class Calc { public: float Plus(float m, float n) { return m+n; } float Minus(float m, float n) { return m-n; } float Multiply(float m, float n) { return m*n; } float Divide(float m, float n) { return m/n; } }; void main( ) { int x = 100; int y = 200; // 배열의 단점 // 1.모든 원소가 같은 타입이다. // 2.접근하는 이름이 모두 같다. int xy[2] = {100, 200}; // Point -> 클래스, pt -> 객체 //Point pt = {100, 200}; //Point pt; //pt.Set(100, 200); Point pt(100, 200); //Point pt; // 기본 생성자가 없을 경우, 에러가 되는 코드. // pt.x = 300; // pt.y = 400; pt.Set(300, 400); //cout << "(" << pt.x << ", " << pt.y << ")" << endl; pt.Show(); //Point pt2 = {111, 222}; Point pt2(111, 222); //cout << "(" << pt2.x << ", " << pt2.y << ")" << endl; pt2.Show(); pt2.Set(333,444); pt2.Show(); Calc calc; // 클래스에서 자료저장 기능을 빼고 함수기능만 사용할 경우, // 비슷한 함수끼리 그룹을 지어주는 형태가 되기도 한다. (네임스페이스와 동일한 역할.) cout << calc.Plus(300, 200) << endl; cout << calc.Minus(300, 200) << endl; cout << calc.Multiply(300, 200) << endl; cout << calc.Divide(300, 200) << endl; }