[英]C++ error: not a member OR multiple definition
我試圖使用我在類中定義的靜態const字段。
當我這樣定義時:
class DisjunctionQuery : public Query
{
public:
DisjunctionQuery ();
static const std::string prefix;
};
const std::string DisjunctionQuery::prefix = "Or";
它說:'DisjunctionQuery :: prefix'的多重定義,如果我改變它(刪除兩行):
class DisjunctionQuery : public Query
{
public:
DisjunctionQuery ();
//static const std::string prefix;
};
//const std::string DisjunctionQuery::prefix = "Or";
它說當我嘗試在另一個地方調用它時,'prefix'不是'DisjunctionQuery'的成員。
我怎樣才能使它工作? 謝謝。
您將定義移動到單個實現文件。
如果將其保留在標題中,則會破壞一個定義規則 。 包含標頭的每個文件都將嘗試定義static
成員,這是錯誤的。
//DisjunctionQuery.h
class DisjunctionQuery : public Query
{
public:
//....
static const std::string prefix;
};
//DisjunctionQuery.cpp
#include "DisjunctionQuery.h"
const std::string DisjunctionQuery::prefix = "Or";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.