프로그래밍 공부
작성일
2023. 4. 26. 22:28
작성자
WDmil
728x90

Class의 함수는 헤더와 cpp로 분리하여 사용할 수 있다.

Calcu.h
Calcu.cpp

위와 같이 헤더에는 선언된 함수의이름과 반환형을 선언해주고.

cpp에는 해당 함수가 동작하는 동작문을 같은 이름으로, Class의 이름과 함께 선언해주면 된다.

 

위 13번 문단을 해석해보면, Calcu값을 리턴으로 돌려주는, Calcu라는 Class에 속한 Sub라는 함수가 int형의 value매개변수를 받아서 동작한다. 라는 뜻이다.

 

또한, 헤더 에서 cpp로 함수명을 가져올 때 에는 inline이 선언된 것과 같은 효과를 가지는데, 일반적인 함수에 비해 실행속도에 더 큰 이득이 있다.


상수화 시킨 Class에서 어떠한 변수를 수정해야할 경우 mutable 을 사용한다.

 

만약의 상황에서 cosnt 선언된 것이 변환되어야 할 경우 사용할 수 있다.

 

위 코드에서, 8번째 줄은 private 선언되어 있고, mutable로 int가 선언되었음으로 public에 있는 함수가 const 로 선언되어도 변경될 수 있다.

 

또한, 15번째 줄과 17번째 줄의 차이점이 눈에 보이는데, 이는. 오버로딩의 차이점이다.

15번째 줄은 int 값이 같기 때문에, 앞부분에 const가 붙어도, 매개변수와 리턴값이 바뀌지 않았기 때문에 오버로딩이 안되지만,

17번째 줄은, 리턴값이 const 선언되었기 떄문에, 오버로딩이 된다. 반환값이 바뀌었기 떄문.

 

또한, 함수를 보았을 때 매개변수 앞부분에 cosnt가 붙은것을 볼 수 있다. 이는 코드상에 영향을 끼지치 않는다.

위 const 부분은, 함수를 프로그래머가 가독성을 향상시킬 목적으로 기입한다. 함수의 반환값의 형태에 영향을 끼칠 수 없지만, 프로그래머는 앞에 const가 붙은것 을 봄으로써, 상수 멤버 함수 임을 알 수 있다. 상수멤버 함수는 해당 멤버 함수가 객체의 멤버 변수를 변경하지 않음을 보장한다.

 

그러니까 쉽게 말하자면 원본을 반환 하지 않고. 그 원본의 값을 가진 임의의 상수를 생성하여 반환시켜주는것 이다.

728x90