2012-09-24 5 views
1

내가 기반의 프로그래밍을 지향하는 새로운 해요 GUI에서 AB 객체를 초기화, 그래서 바보 같은 질문 :객체 지향 프로그래밍 :

나는 algorithmObject라는 클래스를 만들었습니다. 기본적으로 여러 기능이 있습니다.

QT GUI를 만들었으며 다양한 onClick 이벤트의 멤버 함수에 액세스 할 수 있기를 원하기 때문에 algorithmObject 유형의 공용 객체를 만들고 싶습니다.

그래서 내 GUI.h 파일에, 내가 가진 :

Object1 = algorithmObject(); 

I :

GUI.cpp 파일에서
public: 

algorithmObject Object1; 

, I에 의해 초기화하기 위해 노력하고있어 MS VS 2010을 사용 중이고 컴파일러 오류가 발생합니다.

오류 C1903 : 이전 오류에서 복구 할 수 없습니다. 정지 컴파일 오류 C2065 : '오브젝트 1', 내 GUI.cpp 파일에

Object1 = algorithmObject(); 

을하고 나를 위해 개체를 만들 수있는 GUI 생성자에 대한 희망 단지 : 선언되지 않은 식별자

나는 포함하지 않는 경우 같은 오류가 발생합니다.

나는 어떻게 든 .cpp 파일에서 내 개체를 올바르게 초기화하지 않는다고 생각합니다. 누군가 적절한 프로세스가 무엇인지 제안 할 수 있습니까?

내 algorithmObject 파일은 아래에 설명되어 있습니다 :

algorithmObject.h

#include <iostream> 
#include <fstream> 

class algorithmObject 
{ 

public: 

algorithmObject (void); 
~algorithmObject (void); 

void function1 (int parameter); 
void function2(); 
} 

에게 algorithmObject.cpp

#include "algorithmObject.h" 

algorithmObject::algorithmObject(void) 
{ 
} 

void algorithmObject::function1(int parameter) 
{ 
//do something 
} 

void algorithmObject::function2() 
{ 
//do something 
} 

algorithmObject::~algorithmObject(void) 
{ 
} 

을 나는 그러나, 어떤 정의를 포함하지 않는 경우 GUI.h 파일 및 단지 내 algorithmObject 내에서 단일 함수 내에서 정의 th e GUI (algorithmObject Object1;)를 사용하여 클래스의 기능에 올바르게 액세스 할 수 있습니다. 그러나 문제는 개체가 해당 기능에 국한되어 있으며 GUI.cpp 파일의 다른 기능에서 액세스 할 수 없기 때문에 매우 중요합니다.

+1

gui.h에 algorithmObject.h가 포함되어 있습니까? –

+0

멋진 제프리 제리. 나는 이것을 GUI.cpp에 포함시키고 있었다. (대답을 게시하고 받아 들일 수 있니? 고마워요. – c0d3rz

답변

1

algorithmObject.h을 포함해야하므로 컴파일러가 algorithmObject을 사용하려고 시도하는 코드를 보았을 때 이미 algorithmObject 클래스에 대한 선언이 표시되었습니다.

#include "algorithmObject.h" 
#include "gui.h" 

이 상당히 표준 연습에했지만 :

이 가능당신이 필요 거라고, 그래서 당신이 그것을 사용하려고 항상하기 전에 소스 파일 에서 algorithmObject.h을 포함하여이를 방지 할 수 있어요 오랫동안 많은 C를 사용했기 때문에 (개인적으로) 오류가 발생하기 쉽고 연약하다고 생각하기 때문에 일반적으로 헤더가 다른 헤더에 의존하는 경우에는 헤더 자체가 포함되므로이를 포함 할 때 충족해야 할 전제 조건이 없습니다. 소스 파일에서.

+0

감사합니다! :) – c0d3rz

관련 문제