C++ "ClassName Not Объявлено" Ошибка
У меня есть этот файл cpp.
dsets.cpp:
#ifndef DSETS_CPP
#define DSET_CPP
//Adds elements to the DisjointSet data structure. This function adds
//x unconnected roots to the end of the array.
void DisjointSets::addelements(int x){
}
//Given an int this function finds the root associated with that node.
int DisjointSets::find(int x){
return 0;
}
//This function reorders the uptree in order to represent the union of two
//subtrees
void DisjointSets::setunion(int x, int y){
}
#endif
и этот заголовочный файл
dsets.h:
#ifndef DSETS_H
#define DSET_H
#include <iostream>
#include <vector>
using namespace std;
class DisjointSets
{
public:
void addelements(int x);
int find(int x);
void setunion(int x, int y);
private:
vector<int> x;
};
#include "dsets.cpp"
#endif
И я продолжаю получать ошибку, которая говорит, что "DisjointSets не был объявлен"
~
~
1 ответ
У вас есть ваше включение в обратном направлении. Вам нужно включить файл заголовка (.h) из файла.cpp, а не наоборот, как сейчас.
Файл.cpp - это файл, который компилятор фактически собирается скомпилировать; Файл.h просто предназначен для включения в файлы.cpp.
Кроме того, вам не нужно включать ограждения вокруг содержимого файла.cpp, так как вы никогда не #include
файл.cpp (хорошо, могут быть ограниченные обстоятельства, при которых это может быть сделано, но это не распространено). Вам нужны только охранники вокруг содержимого заголовочных файлов.