经过一番研究,我仍然不明白这个问题。
Const.hpp:
#ifndef CONST_HPP
#define CONST_HPP
#include <QString>
const QString CONFFILENAME("dsibubble.ini"),
STRSEP(" | ");
const int MAXIMGWIDTH = 960;
#endif // CONST_HPP
TabDataBase.cpp:
#include "Const.hpp"
func() {
QString abc = STRSEP;
}
使用STRSEP
会产生expected unqualified-id before string constant
错误。
此外,我在其他类中使用CONFFILENAME
,我没有错误。
QString path = QString("..//") + CONFFILENAME;
编辑:错误的详细信息:
In file included ..\TabDataBase.cpp: #include "Const.hpp"
expected unqualified-id before string constant: Const.hpp : STRSEP(" | ");
答案 0 :(得分:7)
我认为您已将STRSEP定义为字符串文字,如:
#define STRSEP "blahblah"
因为我编译了你的代码片段并且很好,但是添加了一个类似于前一个的定义,我得到了同样的错误。
答案 1 :(得分:2)
尝试使用两个单独的语句定义两个常量。这是我能想到的唯一可能产生影响的事情。