@Del0v
Студент

Как правильно подключать файлы .h C++?

Есть файл 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.
Как решать? Если всё поместить в один файл, то работает.
  • Вопрос задан
  • 661 просмотр
Пригласить эксперта
Ответы на вопрос 2
maaGames
@maaGames
Погроммирую программы
std использован только для main.cpp. Ну и string лучше подключить в bitset.
Ответ написан
Комментировать
@vanyamba-electronics
#ifndef BITSET_H
#define BITSET_H

#include <string>

using namespace std;

string Bitset(int num);

#endif
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы