C++에서 클래스란 객체를 정의하는 틀로서, 클래스에 멤버 변수와 멤버 함수를 선언한다.
클래스는 일반적으로 클래스 선언부와 클래스 구현부로 나누어 작성된다 .
클래스 선언부 : 멤버 변수, 멤버 함수, 접근 지정자
클래스 구현부 : 클래스 선언부에 선언된 멤버 함수의 코드를 구현한다.
class Circle{
//클래스 선언부로 멤버 변수, 멤버 함수가 있다.
public :
double getArea();
};
double Circle::getArea(){
//클래스 구현부
return 3.14*radius*radius;
}
C++ 생성자
1.생성자의 목적은 객체가 생성될 때 필요한 초기 작업을 위함이다.
2. 기본 생성자가 자동으로 생성되는 경우와 생성되지 않는 경우
2-1) 자동 생성
Circle donut;//기본생성자
2-2) 자동 생성 되지 않은 경우
Circle pizza(30);
소멸자
1. 소멸자의 목적은 객체가 사라질 때 필요한 마무리 작업을 위함이다.
2. 소멸자는 리턴 타입이 없으면 어떠한 값도 리턴해서도 안 된다.
접근 지정자
- private (비공개) (클래스에서 디폴트 접근 지정자이다)
- public (공개)
- protected (보호)
인라인 함수
짧은 코드로 구성된 함수에 대해, 함수 호출 오버헤드로 인한 프로그램의 실행 속도 저하를 막기 위해 도입된 기능이다.
inline int odd(int x) {
return (x%2);
}
인라인 함수의 장단점
장점 : 작은 함수를 인라인으로 선언하면 실행 속도가 향상된다.
단점 : 인라인 함수를 호출하는 곳에 인라인 함수의 코드를 단순 삽입하므로, 호출하는 곳이 여러 군데 있으면 그 만큼 전체 크기가 늘어난다는 단점이 있다. 가능한 작은 함수를 인라인으로 서언하는 것이 현명하다.
주의사항 : 인라인 선언은 컴파일러에게 주는 요청이지, 강제 명령이 아니기 때문에, 컴파일러가 비효율적이다 판단하면 inline 선언을 무시할 수도 있다. 컴파일러에 따라 재귀 함수,static 변수, 반복문, switch 문, goto 문 등을 가진 함수는 인라인 함수로 허용하지 않는다.
C++ 구조체 선언
1.클래스와 동일한 구조와 기능을 가진다.
2.C++의 구조체는 디폴트 접근 지정자가 public이다.
'Programming Language > C++' 카테고리의 다른 글
| this의 기본 개념 (0) | 2023.04.07 |
|---|---|
| 객체 배열의 동적 생성 및 반환 (0) | 2023.04.06 |
| C++ 동적 메모리 할당 및 반환 (0) | 2023.04.06 |
| 객체 배열 (0) | 2023.04.06 |
| C++ 객체 포인터와 객체 배열, 객체의 동적 생성 (0) | 2023.04.06 |