저는 리눅스에서 C++로 작업하는 것에 익숙하지 않기 때문에 몇 가지 문제가 있습니다. 그 중 하나는 클래스를 작성한 후 해당 클래스의 객체를 인스턴스화하려고하면 다음과 같은 오류가 발생합니다. "정의되지 않은 참조 Constructor_of_that_class "를 참조하십시오. 이것은 필자가 작성하는 모든 클래스에서 발생하며 코드가 아무런 문제없이 컴파일 되더라도 인스턴스화를 시도 할 때 아무 문제가 발생하지 않습니다. 무엇이 잘못되어 있으며이 오류를 극복하기 위해해야 할 일은 무엇입니까? 내가 일하는 프로젝트가 나에 의해 만들어지지 않았기 때문에 나는 어떤 설정으로 뭔가를해야한다고 생각하지만 어떤 것이 있는지 모른다. (주석에서 붙여 넣기)정의되지 않은 참조
편집 :이 클래스를 정의 잘 경우
:
class test {
public:
int a*;
test(int* a)
}
class test {
test::test(int* a)
{
this->a=a;
}
}
다음 이전에 정의 된 곳 사람들의 모든 클래스에서 내가 사용
test t =new test(anIntPointer);
그렇다면 test::test(int*)
에 대한 정의되지 않은 참조가 나타납니다.
클래스 정의 헤더 파일이'#include'에 포함되어 있다면'#include "header.h"양식을 대신 사용해보십시오. 문제가되는 코드 (클래스 정의 및 오류를 유발하는 코드)의 샘플을 게시하지 않으면 문제가 무엇인지 확실하게 알 수 없습니다. –
bta
그럼 클래스를 정의하면 다음과 같습니다. 클래스 테스트 { public : int a *; 시험 (INT * a) } 클래스 테스트 { 시험 : 시험 (INT * a) {this-> A = a 및} 이전 I 정의 여기서 이들의 임의의 클래스 다음 } 및 사용 : 시험 t = 새로운 시험 (anIntPointer); 그러면 'test :: test (int *)'에 대한 정의되지 않은 참조를 얻습니다. –
위의 편집을 보면 생성자 선언 다음에 세미콜론이없는 것으로 보입니다. 또한 'a'선언이 잘못되었습니다 - 별표는 변수 (int * a) 앞에 있어야합니다 –