2014-04-06 1 views
1

그런 경우 "const"의 목적은 무엇입니까?매개 변수가없는 메소드에서 const를 사용하는 이유는 무엇입니까?

std::string List::reqClubName() const 
{ 
    return m_Club; 
} 

덕분에 멤버 함수 후

+0

정확하게 사용하지 않는 매개 변수는 ( –

+1

) 사용하지 않으므로 내 경우 const는 메소드가 아무 것도 수정하지 않는지 확인하는 것입니다. 내가 맞습니까? –

+0

@ user2984887 실제로. 변수가 선언 된 경우를 제외하고는 변수의 멤버를 변경할 수 없습니다. –

답변

0

const은 함수가의 일부 클래스에서 멤버 데이터를 수정하지 않는 것을 말한다.

+0

올바른 동안이 질문에 실제로 대답하지 않습니다. –

3

멤버 수정을 금지하는 것이 멤버 함수를 const으로 정규화하는 유일한 이유는 아닙니다. 당신이 회원을 수정할지 여부, 당신은 전화 발신 const 컨텍스트를 통해 개체의 멤버 함수 멤버 함수는 const 표시됩니다 수있는 경우 :

#include <iostream> 
#include <string> 

struct List 
{ 
    std::string reqClubName() 
    { 
     return m_Club; 
    } 

private: 
    std::string m_Club; 
}; 

int main() 
{ 
    const List l; 
    std::cout << l.reqClubName(); 
    //^illegal: `l` is `const` but, `List::reqClubName` is not 
} 

언어 나 컴파일러 관리 어느 것을 reqClubName 아무튼를 어쨌든 객체를 수정하려고하지 마십시오. 프로그램이 컴파일되지 않습니다.

데이터 멤버를 수정해야하는 경우가 아니면 const 접미사를 기본 접근 방식으로 사용해야합니다.

관련 문제