Я видел много ответов на этот вопрос, знаю, что искать и все еще может это видеть. Похож на какую-то очевидную проблему.Ожидаемое имя класса перед {токеном - очень просто
Algorithm.h:
#ifndef ALGORITHM_H
#define ALGORITHM_H
#include <iostream>
using namespace std;
template <typename T>
class Algorithm
{
private:
T data;
T result;
public:
Algorithm(T in){
data = in;
}
void compute();
void displayData(){
cout<<data<<endl;
}
T getResult(){
return result;
}
};
#endif // ALGORITHM_H
bubble.h:
#ifndef BUBBLE_H
#define BUBBLE_H
#include "algorithm.h"
class Bubble : public Algorithm{
public:
Bubble();
};
#endif // BUBBLE_H
main.cpp
#include "bubble.h"
#include <iostream>
using namespace std;
int main()
{
Algorithm<int> a(1);
Algorithm<char> b('a');
a.displayData();
b.displayData();
return 0;
}
Ошибка:
/home/user/Projects/Algorithms/main.cpp:1: In file included from ../Algorithms/main.cpp:1:0: /home/user/Projects/Algorithms/bubble.h:6: error: expected class-name before '{' token class Bubble : public Algorithm{ ^
Почему компилятор не может видеть класс Алгоритм? Я включил его в Bubble.h, так?
Хотя этот пост может ответить на вопрос, все же рекомендуется добавить некоторое объяснение и, возможно, некоторые ссылки на соответствующую документацию. Ответы с хорошими пояснениями и ссылками обычно более полезны как для текущего ОП, так и для будущих посетителей. Полные подробные ответы также более склонны привлекать позитивные голоса. –
Да, вы правы. Как вы можете заметить из других моих ответов, я обычно это делаю :) У меня здесь была чрезвычайная ситуация, и я уже ввел код ... – jcoppens