본문 바로가기

ㅊ++

[EC++] 항목 20. 값에 의한 전달보다는 상수 객체 참조자에 의한 전달 방식을 택하는 편이 대게 낫다. 우선 이번 항목에서는 쟁점이라고 할 수 있는 것은 Pass by Value(Call by value) 의 두가지 문제점을 제기 하는데요. 첫번째는 바로 고비용 문제 입니다. 기본적으로 C++는 함수로부터 객체를 전달받거나 함수에 객체를 전달할 때 값에 의한 전달 방식을 사용하는데요. 특별히 다른 방식을 지정하지 않는 한, 함수 매개변수는 실제 인자의 '사본'을 통해 초기화되며, 어떤 함수를 호출 한 쪽은 그 함수가 반환한 값의 사본을 돌려받습니다. 이들 사본을 만들어 내는 곳이 바로 복사 생성자인데, 이런 점 때문에 고비용의 연산이 되기도 합니다. 한번 예제를 보면서 알아 보도록 하겠습니다. #include #include using namespace std; class person{ public: pe.. 더보기
[C++의 특징 - 2] 인라인 함수(Inline Function) 와 네임스페이스(Namespace) 이전에 C에서는 매크로 함수라는게 있었습니다. C++에서는 이것과 똑같은 기능을 하는것이 바로 인라인 함수 입니다. 우선 매크로 함수에 대해서 살짝 알아 보면... 1. 매크로 함수 (Macro Function) : 전처리기에 의해 처리 되면서, 매우 빠른 실행의 이점을 가지게 되는 함수이다. 아래와 같이 선언해 쓰고, 매크로 함수는 데이터형에 영향을 받지 않는 특징을 가지고 있다. #define Square ((x) * (x)) 하지만 왜 C++에 와서 그대로 매크로 함수를 쓰지 않고 인라인 함수라는 것을 새로 만들어서 사용하는 것일까? 그 이유를 한번 알아 보자. 2. 인라인 함수 (Inline Function) : C와의 매크로 함수와 같지만, 인라인 함수는 컴파일러단에서 처리되면서, 구현이 용이 .. 더보기