(c++) 함수 뒤 const👨🏻💻 programming/◽ c, c++2024. 6. 27. 16:43
Table of Contents
728x90
" 함수 뒤 const "
class Test
{
public:
void ResizeVector(int num) const
{
vec.resize(num);
}
private:
vector<int> vec;
}
위에 있는 함수는 컴파일이 될까? 정답은 안된다. 이유는 함수 뒤 const 때문에 vector 내장함수인 resize를 사용할 수 없다.
함수 const에 대해서 간단하게 알아보자.
[ 의미 ]
- 해당 함수에서는 해당 객체의 멤버변수를 변경할 수 없다.
- 여기서 이번에 새로 알게 된 사실은 멤버변수에 순차 컨테이너 vector가 있었는데 vector 내장 함수도 제한 받는다는 것이다.
어찌보면 당연한거지만 ...? 컴파일 전에 오류메시지를 뱉는게 신기했다.
"개체에 일치를 방해하는 형식 한정자가 있음." 이렇게 오류가 뜬다.
- 제한되는 함수는 아래와 같다. push_back, assign, resize, emplace, emplace_back, insert, pop_back, reserve, swap 등.
[ 조건 ]
함수에 const 키워드를 삽입 할 수 있는 조건은 클래스 멤버에 한정된다. (struct도 붙일 수 있다.)
728x90
'👨🏻💻 programming > ◽ c, c++' 카테고리의 다른 글
(c++) 레퍼런스/reference 정리 (0) | 2025.05.26 |
---|---|
(c++20) STL::Container #2 - contains, starts_with, ends_with (2) | 2024.06.17 |
(c++20) STL::Container #1 - std::to_array, erase, erase_if (0) | 2024.06.17 |
(c++20) Conditional Explicit Constructor (0) | 2024.06.17 |
(c++20) [Three-way Comparsion(3방향 비교 연산자)/우주선] 연산자 (0) | 2024.06.14 |
@핑크코냥 :: 핑크코냥
안 하는 것 보다 낫겠지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!