멤버 함수의 자동 인라인
보통 멤버 함수의 정의가 짧은 경우에는 클래스 내에 직접 멤버 함수를 정의하게 된다. 멤버 함수를 클래스 내부에 정의하면 이것은 자동적으로 인라인 함수가 된다. 클래스 내부에 멤버 함수를 정의하면 예약어 inline을 입력할 필요가 없다. 참고로 예약어 inline을 사용해도 오류가 발생하지 않는다. 빠르게 작동해야 하는 짧은 함수가 많은 경우 클래스 내부에 정의해서 자동 인라인화 하는 게 좋다.
예제
#include <iostream>
using namespace std;
class test {
private:
int i,j;
public:
void input(int a, int b) { i = a; j = b; } //자동 인라인
void output() { cout << "i=" << i << ",j=" << j << endl; } //자동 인라인
};
int main()
{
test x;
x.input(50, 100);
x.output();
return 0;
}
결과
i=50,j=100
※ 멤버 함수 input()와 outpt()를 클래스 내에 정의하여 인라인하였다.(예약어 inline 생략함)
※ 두 멤버 함수를 클래스 내부에 1행으로 정의하였는데, C++에서는 이러한 코딩 형식을 자주 볼 수 있다.
※ 인라인화 했지만 입출력 연산자 (>> 와 <<)를 실행시키는 것이 CPU/메모리 조작하는 것보다 시간이 더 소요되므로 실제로는 자동 인라인화 기능의 효과가 없다.
※ 인라인 함수 조건을 충족되지 못해서 자동 인라인화 될 수 없는 경우에는 자동적으로 일반함수로 컴파일된다.
참고
1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13
'C++ 기초 1' 카테고리의 다른 글
[C++] 2-4 클래스 배열 초기화 설명 및 예제 (2) | 2023.11.28 |
---|---|
[C++] 2-3 클래스 변수 초기화 / 멤버 변수 초기화 (55) | 2023.11.27 |
[C++] 2-1 클래스(Class) 사용법 및 예제 (50) | 2023.11.23 |
[C++] 1-13 스토리지 클래스 (auto, register, static, extern) (47) | 2023.11.22 |
[C++] 1-12 함수의 지역 변수 / 전역 변수 설명 및 예제 (49) | 2023.11.21 |