다음을 통해 공유


lnt-make-member-function-const

멤버 함수가 개체의 상태를 수정하지 않으면 키워드로 주석을 const 추가합니다. 이 지침은 C++ 핵심 지침 Con.2에서 제공됩니다.

예시

Linter는 개체의 상태를 수정하지 않기 때문에 getValue() getRadius() 다음 코드에 두 번 플래그를 지정합니다.

class MyClass
{ 
public: 

  int getValue() { return value; }  // Flagged: ‘getValue’ doesn't modify the object's state. 
  void setValue(int newValue) { value = newValue; }  // OK: ‘setValue’ modifies the object's state.   

private: 

  int value = 42; 
}; 

double getRadius()
{   // Flagged: ‘getRadius’ doesn't modify the object's state. 
    return radius; 
} 

문제를 해결하는 방법

멤버 함수가 const 개체의 상태를 수정하지 않을 때 표시합니다. 이렇게 하면 코드 판독기와 컴파일러가 함수가 개체를 const 호출하는 것이 안전하다는 것을 알 수 있습니다.

다음 예제 const 에서는 다음에 추가 getValue() 되었습니다.getRadius()

class MyClass
{ 
public: 

  int getValue() const { return value; }  // Added const 
  void setValue(int newValue) { value = newValue; }  // OK: ‘setValue’ modifies the object's state.   

private: 

  int value = 42; 

}; 

double getRadius() const // added const
{   // ‘getRadius’ doesn't modify the object's state. 
    return radius; 
}  

편집기에서 이 변경 작업을 수행할 수 있습니다. 플래그가 지정된 기호에 커서를 놓고 잠재적 수정 표시를 선택한 다음 멤버 구성을 만듭니다.

멤버 구성을 제안 하는 편집기의 스크린샷.

커서가 getValue() 줄에 있고 **잠재적 수정 표시**가 나타나고 선택되었습니다. 이제 **멤버 const 만들기**가 표시되고 const가 추가된 get 값 함수가 표시됩니다. 이제 **멤버 구성**을 선택하여 변경할 수 있습니다.

플래그가 지정된 모든 멤버 함수에 대해 이 변경을 수행합니다.

설명

Visual Studio 2022 17.8에서 도입된 이 검사는 C++ 코드의 멤버 함수 사용에 중점을 const 둡니다. C++ 핵심 지침에서는 멤버 함수를 개체의 상태를 수정하지 않을 때 표시 const 할 것을 권장합니다.

이 검사의 현재 구현에서는 선언 후 멤버 함수에 추가할 const 수 있습니다. 멤버 함수가 개체의 상태를 수정하지 않는 경우 멤버 함수 const 를 처음부터 선언하는 것이 좋습니다.

참고 항목

C++용 IntelliSense 코드 Linter 개요