1

信息:Microsoft Visual Studio 2012 Ultimate、Windows 8 Professional、C++。我有个问题...

QIClassStringOperations.hpp

#include "Q.hpp"
class QIClassStringOperations
{
    public:
        virtual void FromString(const QString& Str) = 0;
        virtual QString ToString() = 0;
};

Q.hpp

#include "QString.hpp"

QString.hpp

template <typename Type> class CString
{
    //...
};
typedef CString<char> QString;

在编译我有这个错误:

c:\...\QIClassStringOperations.hpp(13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

这条线的问题:

virtual void FromString(const QString& Str) = 0;

对不起,我的英语不好 :)。你能帮助我吗?

4

2 回答 2

0

看起来 QString 没有被重新定义为一种类型?你在哪里声明 QString?

于 2013-05-02T15:42:54.670 回答
0

您应该在声明类 QIClassStringOperations 的Q.hpp中包含#include "QString.hpp",因为它应该知道 QString 是什么。否则编译器会报错。

有关详细信息,请访问:http: //msdn.microsoft.com/en-us/library/ms173696.aspx

于 2013-05-02T16:24:38.173 回答