在最後的幾個小時,我拼命想弄清楚什麼是錯的,但在白白:C++包括不起作用
我有以下情形:我有一個工作的頭,我決定將零件從其移動到另一個新文件。
所以基本上我現在有:
FILEA
......
class A;
.....
文件B
#include FileA
.....
A B;
.....
但變量A
沒有得到FILEB的一致認可。
- 所有的定義是相同的命名空間
- 我使用Boost庫和調試模式
- 沒有拼寫錯誤,我得到下:「intelisence:不兼容的編譯選項」(不知道若真這個連接或不是我的問題)
- 當在代碼上看,視覺工作室認識到所有類型(即當按下文件B中的類型「A」,視覺工作室認出它)。
我在做什麼錯?
按照您的要求爲真正的代碼和進一步的細節: 讓我更具體 我使用的IFNDEF方法,或許這造成了混亂,但我不明白爲什麼,因爲FILEB是唯一一個誰包括的fileA
本身看起來像這樣的代碼:
#ifndef MERKLE_BASICS_HPP
#define MERKLE_BASICS_HPP
#include "FullProofConsumer.hpp"
#include <openssl\sha.h>
namespace PCP_Project{
typedef unsigned char* HashDigest;
//Forward Declarations
HashDigest hashTwoElements(HashDigest,HashDigest);
HashDigest hash_GF2E_Element (GF2E);
HashDigest createZeroCommitment();
//The definition of the hashDigest type, for now its just long. Will be probably replacedlater.
//typedef unsigned char* HashDigest;
}
#endif
,然後在其他文件我有:
#ifndef MERKLE_CONSUMER
#define MERKLE_CONSUMER
#include <fstream>
#include "MerkleBasics.hpp"
namespace PCP_Project{
......
HashDigest Value;
...
並編譯錯誤: 錯誤273錯誤C2146:語法錯誤:缺少';'前標識「值」
(我有很多這樣的,這只是一個例子) 很抱歉,如果從原來的問題,你瞭解的東西不同模式,並再次感謝
請編輯您的問題以包含您的*實際*代碼。 –
請顯示實際的代碼和實際的編譯器消息。 –
這個新代碼對我來說工作正常 - 經過編輯當然。發佈**最低可編譯代碼**請提出問題。 –