일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 굿노트 다이어리 공유
- 애플워치 줄질
- 청년주택 신청방법
- 굿노트 먼슬리
- ubuntu
- 아이패드
- 애플워치 스타라이트
- 남영역 청년주택
- 굿노트 다이어리
- 애플워치7 스타라이트
- VMware
- 굿노트 템플릿
- 굿노트 속지
- 강릉 새벽기차
- 역세권 청년주택 신청기준
- 강릉 당일치기 코스
- 2022 굿노트 다이어리
- 굿노트 위클리
- hosts 설정
- 애플워치 스포츠루프
- 맥북 호스트 설정
- c++
- GIT
- 굿노트
- mac os hosts
- 인계동 파스타
- 아이패드 굿노트
- 먼슬리 속지
- 굿노트 속지 공유
- 먼슬리
- Today
- Total
하루하루
[C++] 클래스와 객체 본문
클래스는 객체 지향 프로그래밍을 지원하는 C++의 핵심 기능이다.
클래스는 객체의 형태를 지정하는 데 사용되며, 데이터 표현과 해당 데이터를 조작하기 위한 메소드를 하나로 결합한다.
클래스
- 클래스 이름은 대문자로 시작해야한다. (필수 x) 클래스 이름이 둘 이상의 단어로 구성된 경우 각 단어의 첫 글자는 대문자여야 한다.
- 클래스에는 데이터 멤버 및 멤버 함수가 포함되며, 이러한 데이터 멤버 및 변수의 액세스 방법은 액세스 지정자에 따라 다르다.
- 클래스의 멤버 함수는 클래스 정의 내부 또는 클래스 정의 외부에서 정의할 수 있다.
- 클래스의 객체는 별도의 데이터 멤버 사본을 보유한다. 필요한 만큼 클래스의 객체를 만들 수 있다.
C++ 클래스 정의
클래스는 객체를 만들기 위한 설계도이다. 클래스를 정의할 땐 공간이 할당되지 않는다. 실제로 데이터를 정의하진 않지만 클래스 이름의 의미, 즉 클래스의 객체를 구성할 요소와, 객체에 대해 수행할 수 있는 작업을 정의한다.
C++에선 이와 같이 클래스를 이용해 만들어진 객체를 인스턴스(instance)라고 부른다.
클래스의 정의는 키워드 class와 클래스 이름으로 시작한다. 클래스 정의 뒤에는 세미콜론 또는 선언 목록이 와야 한다. 예를 들어 Box 데이터 유형을 다음과 같이 정의했다.
class 이름
{
접근 제한자:
멤버 변수;
반환형 멤버 함수();
...
};
반환형 클래스 명 :: 멤버 함수()
{
...
}
class Car {
public:
int model;
int speed;
void showModel();
int getSpeed();
int Accel();
int Break();
};
public 키워드는 접근 제한자이다. C++의 접근 제한자는 총 3가지이다.
- public : 어디서든 접근 허용
- private : 클래스 내 (클래스 내에 정의된 함수)에서만 접근 허용
- protected : 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용
자세한 내용은 다음에 알아보겠다.
C++ 객체 정의
클래스는 객체에 대한 설계도를 제공하므로 기본적으로 객체는 클래스를 통해 생성된다. 기본 유형의 변수를 선언하는 것과 마찬가지의 선언으로 클래스의 객체를 선언할 수 있다.
위에서 만든 클래스로 새로운 차를 만들어보자.
Car bmw;
car.model = 520
car.showModel();
객체 내부에 접근하기 위해 . 을 사용하였다.
#include <iostream>
class Car
{
public:
int model;
int speed;
void showModel();
int getSpeed();
int Accel();
int Break();
};
void Car::showModel()
{
}
int Car::getSpeed()
{
}
int Car::Accel()
{
}
int Car::Break()
{
}
int main()
{
Car bmw;
bmw.model = 520;
bmw.showModel();
return 0;
}
다음과 같이 사용할 수 있다.
'IT > c++' 카테고리의 다른 글
[CMake] Ubuntu에 CMake 설치 및 업데이트 (0) | 2020.01.17 |
---|---|
[VS code] 우분투 16.04 LTS 에서 VScode 설치하기 (2) | 2020.01.06 |
[C++] 상속(Inheritance) (0) | 2019.10.16 |
[C++] 접근 제어자 (0) | 2019.10.08 |
[C++] 객체 지향 프로그래밍 (OOP, Object-Oriented Programmig) (0) | 2019.10.07 |