method.h, method.cpp, main.cpp 세 파일이 있습니다.
method.h
#ifndef METHOD_H
#define METHOD_H
class method {
public:
void printThisMethod();
private:
};
#endif
method.cpp
#include "method.h"
inline void method::printThisMethod() {
//some methods done here
}
main.cpp
#include <iostream>
#include <string>
#include "method.h"
int main() {
method outputMethod;
outputMethod.printThisMethod;
}
오류가 발생합니다.
undefined reference to method::printThisMethod.
감사합니다
inline
키워드를 제거 하거나 정의를 헤더로 이동하십시오 (는 유지 inline
).
inline
하나의 정의 규칙을 완화하여 헤더에 정의를 허용하는 데 사용됩니다. 그러나, 그것은 또한 필요 종종 헤더로 정의를 필요로 그것을 사용하는 모든 번역 단위에서 정의를.
이 없으면 inline
일반 연결 규칙이 적용되며 하나의 번역 단위에 단일 정의가 있어야합니다. inline
기존 코드에서 제거하면 그것이 당신이 갖게 될 것 입니다.
(함수 호출에 괄호를 추가해야 outputMethod.printThisMethod()
하지만 실제 코드 에 괄호가 있을 수 있습니다. 그렇지 않으면 링크 오류가 발생하지 않습니다.)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다