-3
我明白這個問題已被要求死亡,但我已經做了大量的研究,目前爲止沒有任何幫助。是的,我有很多很多的標題守衛沒有,據我所知,沒有什麼需要內聯每個功能都在一個類中。我有一個encoderrunner.cpp,其中包括encoder.h和decoder.h,encoder.h和decoder.h都包含FrequencyTable.h,這就是所有地獄崩潰的地方,編譯器說FrequencyTable中的所有內容都是重新定義的。這是衆多這個恰好是從我從FrequencyTable標題多重定義
/home/sersay/Documents/ECS60/p4/FrequencyNode.cpp:10: multiple definition of `FrequencyNode::FrequencyNode(unsigned char, FrequencyNode*, FrequencyNode*)'
decoder.o:/home/sersay/Documents/ECS60/p4/FrequencyNode.cpp:10: first defined here
等分離類...
- 我有/加護頭包括嘗試的#pragma一次
- FrequencyTable本來是一個嵌套類,所以我試圖將它分爲兩類,仍然是相同的錯誤
- 我確實有功能以外的類,但它們不存在於我的FrequencyTable類或其他類我從它分開
我可以提供更多的代碼,但我不相信它完全相關,也許這是我如何編譯它?
encoder.out : decoder.o encoder.o encoderRunner.o
g++ -ansi -Wall -g -o encoder.out decoder.o encoder.o encoderRunner.o
decoder.o : decoder.cpp decoder.h
g++ -ansi -Wall -g -c decoder.cpp
encoder.o : encoder.cpp encoder.h
g++ -ansi -Wall -g -c encoder.cpp
encoderRunner.o : encoderRunner.cpp CPUTimer.h encoder.h decoder.h
g++ -ansi -Wall -g -c encoderRunner.cpp
clean :
rm -f encoder.out decoder.o encoder.o encoderRunner.o
EDIT1:
#pragma once
#ifndef FrequencyTable_H_
#define FrequencyTable_H_
#include "FrequencyNode.h"
//class FrequencyNode;
class FrequencyTable
{
private:
FrequencyNode *HighestNode;
FrequencyNode *LowestNode;
public:
FrequencyTable();
~FrequencyTable();
FrequencyNode * insert(unsigned char symbol); //USE THIS for new values in hash
unsigned char * GetOrder();
};
//#include "FrequencyTable.cpp"
#endif
EDIT2(Ed的請求):
#include "FrequencyTable.h"
#include "FrequencyNode.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
請讓我知道你需要什麼其他信息
您可以創建一個展現此行爲的[SSCCE](http://sscce.org)嗎? – NathanOliver
這不是你真正的代碼,因爲你甚至沒有_built_'FrequencyNode.cpp'。或者你是否將它包含在標題中?別。 –
它看起來像你的一個文件是#include-FrequencyNode.cpp。你絕對不想那樣。 – Erik