У меня ошибка. Я не знаю, как исправить мою домашнюю работу. Ошибка, которую я получаю, - «42 дублирующих символа для архитектуры x86_64». Я предполагаю, что это связано с моим глобальным файлом переменных «global.h». У меня есть 3 глобальных переменных, которые я использую, и «global.h» включен в абстрактный класс под названием «PageReplacementAlgorithm.cpp». У меня есть около 6 классов, которые получены из класса PageReplacementAlgorithm, и они используют эти глобальные переменные. Я думаю, что проблема возникает, когда я включаю все эти производные классы в мой «main.cpp», поскольку мне нужно создавать новые экземпляры. Как я могу исправить реализацию глобальных переменных?Ошибка глобальной переменной C++
Global.h
#include "PageTableEntry.h"
using namespace std;
#ifndef Global_H
#define Global_H
extern PageTableEntry pageTable[64];
extern int* frameTable;
extern int framesCount;
#endif
PageReplacementAlgorithm.h
#include "Global.h"
using namespace std;
#ifndef PageReplacementAlgorithm_H
#define PageReplacementAlgorithm_H
class PageReplacementAlgorithm {
public:
virtual int selectFrame(PageTableEntry &p) = 0;
};
#endif
Пример производный класс (FIFO)
include "PageReplacementAlgorithm.h"
using namespace std;
#ifndef FIFO_H
#define FIFO_H
class FIFO : public PageReplacementAlgorithm {
public:
FIFO();
int selectFrame(PageTableEntry &p);
private:
int entries;
};
#endif
main.cpp
#include "Aging.cpp"
#include "Clock.cpp"
#include "FIFO.cpp"
#include "MMU.cpp"
#include "NRU.cpp"
#include "Random.cpp"
#include "SecondChance.cpp"
Отлично! Где ваш источник? (Включите его в вопрос). –
, пожалуйста, отправьте свой исходный код ... :) – pkthapa
Спасибо, только что отправил его :) – Matrix21