C++의 메소드의 const 버전과 non-const 버전 간의 구분에 관한 몇 가지 질문이 있습니다.C++의 메소드의 const 버전과 non-const 버전의 차이점
예 :
MyObject* MyClass::objectReference()
const MyObject* MyClass::objectReference() const
내 질문
은 다음과 같습니다- 수동으로 호출되는 방법의 버전을 구별하는 전혀 방법이 있나요? 또는 완전히/완전히 자동입니까? 그렇다면 정확도 인은 어떤 버전을 호출 할 지 결정하는 규칙입니까?
- (1)과 관련하여 const 버전과 non-const 버전을 구별 할 수 없다면 중복 버전을 방지하기 위해 한 버전의 메소드를 다른 버전에서 호출 할 수 없습니까?
doxygen을 사용하는 방법 중 하나의 문서에서 한 버전 또는 다른 링크에 대한 링크를 만드는 방법은 무엇입니까? (예 : "myMethod()의 const 버전"또는 "myMethod()의 비 const 버전")자신을 발견했습니다. 메소드 서명의 끝에 "const"를 추가하거나 생략하십시오.
전 * 다른 질문 - 마지막은 Doxygen 특정, 전 일반적인 C + + 질문하는 것이 좋습니다. # 1 *과 * # 2를 더 잘 사용할 수도 있습니다. –
# 2는 문제의 대상이 'this'가 가리키는 # 1의 특별한 경우입니다. 나는 # 3이 자신의 질문을 가져야한다고 분명히 동의한다. – bcat
@bcat : 글쎄, 따라서 * * * - 구현 공유는 그 자체로 흥미로운 문제입니다. [# 1] (http://stackoverflow.com/questions/407100/calling-a-const-function-from-a -non-const-object), [# 2] (http://stackoverflow.com/questions/1333849/how-to-generate-a-non-const-method-from-a-const-method), [# 3] (http://stackoverflow.com/questions/856542/elegant-solution-to-duplicate-const-and-non-const-getters), ... :) –