내 헤더 파일을 오류가 있습니다.
field "ui" has incomplete type.
나도 날잡아 만드는 것이 아니라, ',' ᅴ 포인터 doesn& # 39, 빗나갔다. # 39, i (i have already 문제 때문에 이를 데릭쉐퍼드와 don& 것 같지는 않다 '' 내 '에 정의된 맹빈다우클레스 이름공간이 ᅴ'. 이건 내 '맹빈다우스트':
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
#include "ui_mainwindow.h"
namespace Ui {
class MainWindowClass;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0, Qt::WFlags flags=0);
~MainWindow();
public slots:
void slideValue(int);
private:
Ui::MainWindowClass ui; //error line
};
#endif // MAINWINDOW_H
앞으로 '유형' 맹빈다우클레스 대한 선언을 사용하고 있습니다. # 39 의 that& 좋아요, 하지만 또한 포인터 또는 참조입니다 선언할 수 있는 의미 있는 유형:. 그렇지 않으면 컴파일러와의 주님으로부터그에게 아이디어, t know it doesn& 로케이터로 상위입니다 할당하고자 어떻게 # 39 의 크기는 전달하십시오 선언된 유형 (또는) 는 실제로 파라메트리스 구성자를 경우, etc.)
그러니까 인컨텍스트 로렌아줌마가:
// forward declaration, details unknown
class A;
class B {
A *a; // pointer to A, ok
};
// declaration of A
#include "A.h"
class B {
A a; // ok, declaration of A is known
};
어느 시점에서 컴파일러는 지시에요 대한 자세한 내용은 'A'.
// B.h
// header file
// forward declaration, details unknown
class A;
class B {
public:
void foo();
private:
A *a; // pointer to A, ok
};
// B.cpp
// implementation file
#include "B.h"
#include "A.h" // declaration of A
B::foo() {
// here we need to know the declaration of A
a->whatever();
}
문제는 '속성' 사용자 ui 는 앞으로 선언 '클래스', 즉 불완전한 type" ᅴ 맹빈다우클레스 "; 오류:.
이 클래스는 헤더 파일에 선언된 있는 등 문제가 해결됩니다.
의견에 따라 다음 코드:
namespace Ui
{
class MainWindowClass;
}
그러나 클래스용 어딘가에 정의할 수 있다.
참고 이 수만 있다면 이런 type.<, br /> 포인터입니다 , 작동합니까
그래서 실제로 당신은 불완전한 유형, 그리고 인컨텍스트 스맥랜드의 포인터로 멤버 'ᅴ' 선언해야 합니다.
namespace Ui
{
// Forward declaration - Class will have to exist at link time
class MainWindowClass;
}
class MainWindow : public QMainWindow
{
private:
// Member needs to be a pointer, as it's an incomplete type
Ui::MainWindowClass * ui;
};
한 후, '또는' ᅴ 맹빈다우클레스 할당할지 인스턴스에서는 운영까지도 정적으로 선언할 수 있어야 합니다. 할 수 있어 또 다른 헤더 파일 (일반적으로 there& # 39 의 헤더 파일 하나 당 클래스), br /> .<. 하지만 단순히 코드 변경.
namespace Ui
{
// Real class declaration - May/Should be in a specific header file
class MainWindowClass
{};
}
class MainWindow : public QMainWindow
{
private:
// Member can be statically allocated, as the type is complete
Ui::MainWindowClass ui;
};
또 작동합니까.
둘 사이의 차이점은 선언. 실제로 사용하는 동안 첫 번째 선언, 앞으로 클래스를 선언합니다. (여기서 속성를 없이 아니하고또 메서드을).