목차
- C++ Classes (클래스) / Objects (객체)
- Class (클래스) 생성
- Object (객체) 생성
- 여러 Object 생성
C++ Classes (클래스) / Objects (객체)
C++은 OOP (= 객체지향 프로그래밍) 언어.
C++의 모든 것은 속성과 메서드 갖는 (클래스/객체)와 관련됨.
1.
클래스(예: 자동차)는 속성/메서드 갖음.
※ 속성 : 클래스에 속하는 변수. (예: 무게, 색깔, 속도...)
※ 메서드 : 클래스에 속하는 함수. (예: 전진, 후진, 멈춤...)
2.
객체(예: 현대자동차, 기아자동차 등)은
자동차 (클래스)의 '속성/메서드' 상속함.
PS. 부가 설명.
PS1.
'속성'과 '메서드'는 기본적으로 클래스 소속이라,
클래스 멤버 (class members)라 불리기도 함.
PS2.
클래스는 '사용자 정의 자료형'에 해당하는 것으로,
'객체 생성자 ' '객체 청사진'으로서의 역할 수행함.
Class (클래스) 생성
class 키워드 사용해 클래스 생성.
cf. Java 경우.
1. 클래스명은 항상 대문자로 시작해야 함.
2. java 파일명은 클래스명과 일치해야 함.
[예제]
class Hz { // 클래스 선언
public: // 접근 지정자.
int age; // 속성 (int 자료형 변수)
string name; // 속성 (string 자료형 변수)
};
PS.
속성 : 클래스 내부에서 선언된 변수.
메서드 : 클래스 내부에서 선언된 함수.
Object (객체) 생성
Homzzang 클래스 생성 후, hz 객체 생성.
[예제]
#include <iostream>
#include <string>
using namespace std;
class Homzzang {
public:
string site;
int open;
};
int main() {
Homzzang hz;
hz.site = "홈짱닷컴";
hz.open = 2012;
cout << hz.site << "\n";
cout << hz.open;
return 0;
}
결과값:
홈짱닷컴
2012
여러 Object 생성
Member 클래스 생성 후, 'mb1, mb2' 객체 생성.
[예제]
#include <iostream>
#include <string>
using namespace std;
class Member {
public:
string id;
string name;
int point;
};
int main() {
Member mb1;
mb1.id = "sinbi";
mb1.name = "신비";
mb1.point = 1000;
Member mb2;
mb2.id = "sana";
mb2.name = "사나";
mb2.point = 2000;
cout << mb1.id << " " << mb1.name << " " << mb1.point << "\n";
cout << mb2.id << " " << mb2.name << " " << mb2.point << "\n";
return 0;
}
결과값:
sinbi 신비 1000
sana 사나 2000