-
명품 C++ 3장 8번C++ 2018. 10. 28. 15:30
8. int 타입의 정수를 객체화한 Integer 클래스를 작성하라. Integer의 모든 멤버 함수를 자동 인라인으로 작성하라. Integer 클래스를 활용하는 코드는 다음과 같다.
소스코드
#include <iostream>#include <string>#define TRUE 1#define FALSE 0using namespace std;class Integer {int n;public:Integer(int n);Integer(string n);void set(int n);int get();int isEven();};inline Integer::Integer(int n) {this->n = n;}inline Integer::Integer(string n) {this->n = stoi(n);}inline void Integer::set(int n) {this->n = n;}inline int Integer::get() {return n;}inline int Integer::isEven() {if (n % 2 == 0)return TRUE;elsereturn FALSE;}int main() {Integer n(30);cout << n.get() << ' '; //30출력n.set(50);cout << n.get() << ' '; //50출력Integer m("300");cout << m.get() << ' '; //300출력cout << m.isEven();// true(정수로 1) 출력}실행결과
인라인 함수는 짧은 코드를 함수로 쓸 때 사용합니다.
인라인 함수를 쓰면 프로그램의 실행 속도를 향상 시킬 수 있습니다. 하지만 호출하는 곳이 여러 군데 있으면 크기가 늘어나는 단점이 있습니다.
컴파일러는 클래스의 선언부에 구현된 멤버 함수들에 대해서 inline 선언이 없어도 인라인 함수로 자동 처리합니다.
인라인 함수는 재귀함수, static 변수, 반복문, switch 문, goto 문 등을 가진 함수는 인라인 함수로 허용하지 않습니다.
'C++' 카테고리의 다른 글
명품 C++ 3장 10번 (0) 2018.10.28 명품 C++ 3장 9번 (0) 2018.10.28 명품 C++ 3장 7번 (0) 2018.10.28 명품 C++ 3장 6번 (1) 2018.10.28 명품 C++ 3장 5번 (0) 2018.10.28