Есть файл main.cpp с основным телом программы. Я создал в другом файле (bitset.cpp) функцию, которая возвращает
string и хочу "включить" её в основную программу. Для этого я создал заголовочный файл bitset.h, в который поместил прототип нужной функции. Все 3 файла находятся в одном проекте, но при запуске основной программы вылетает ошибка :
[Error] 'string' does not name a type (выделяется файл bitset.h, строка объявления прототипа функции). Хотя
string подключён к bitset.cpp.
main.cpp#include <iostream>
#include "bitset.h"
using namespace std;
int main() {
int a;
cin>>a;
cout<<Bitset(a)<<endl;
return 0;
}
bitset.cpp#include <string>
#include "bitset.h"
string Bitset(int num){
//Программа, которая принимает число, и выводит в строку битовую карту
unsigned int mask = 0x80000000;
string bset = "|";
for (int i = 0; i < (sizeof(num)*8); i++){
if ((num & mask) != 0) bset += "1|";
else bset += "0|";
mask = (mask>>1);
}
return bset;
}
bitset.h#ifndef BITSET_H
#define BITSET_H
string Bitset(int num);
#endif
Думал, что проблема в типе string, пробовал заменить её на char[32](вывод функции ровно 32 значения), но появляется новая ошибка:
[Error] expected unqualified-id before '[' token.
Как решать? Если всё поместить в один файл, то работает.