필자는 항상 대부분의 코드와 튜토리얼을 읽고 왜 항상 클래스 내부의 멤버 함수를 선언 한 다음 이와 같이 정의하는지 궁금해했습니다.클래스 정의 내에서 멤버 함수 정의하기
class A{
A doSomething();
};
A A::doSomething(){
//doing something
}
대신 어쨌든이
class A{
A doSomething(){
//doing something
}
};
을하고, 나는 내 교수 과정을 개정하고 있었고, 난이 발견
"Toute fonction membre définie, 적합 SA CLASSE (, 적합 라 선언 드 라 classe)는 인라인으로 계산할 수 있으며, 인라인으로 사용할 수 있습니다. "
Wh ich는 안으로 번역한다;
"(클래스에서 그 클래스에 정의 모든 멤버 함수 '선언) 인라인 함수와 컴파일러에 의해 간주되지 않습니다. 키워드'인라인 '더 이상을 사용"내가 이해
인접한다입니다 인라인 함수는 매크로처럼 작동합니다. 컴파일러는 함수가 호출되는 모든 인스턴스에 전체 코드 블록을 복사합니다.
내 질문은; 교수님 과정의 진술이 맞습니까? 그렇다면 그 이유는 무엇입니까?
'inline'은 영원히 이후 인라인과 관련이 없습니다. 그것은 약간의 의미 입력 (하나의 정의 규칙을 리프트하고, 아마도 내가 잊어 버린 다른 것)을 가지고 있지만 컴파일러에 의해 인라인되는 함수를 암시하거나 요구하지는 않습니다. – delnan