Уважаемое комьюнити, столкнулся с проблемой в visual studio, которое невероятно раздражает. А именно:
При этом ошибки в 6-ой строке нет.
Содержимое students.h:
#pragma once
#include "student.h"
class students {
private:
vector <student> list;
public:
void adding();
void show();
void looking_for();
//void sorting();
//void writing();
//void delete_some();
students();
~students();
};
Буду очень признателен за любые мысли на счет этой проблемы.
Содержимое student.h:
#pragma once
#include <iostream>
#include <vector>
#include <conio.h>
#include <string>
#include <fstream>
#include <iomanip>
#include "students.h"
#include "other_func.h"
using namespace std;
class student {
private:
string name;
string surname;
string adress;
string universety;
double score;
public:
void set();
friend ostream & operator <<(ostream &ost, student obj);
string return_name();
string return_surname();
student();
student(string oname, string osurname, string oadress, string ouniversity, int oscore);
~student();
};
То есть, все, что надо объявить, было объявлено.
Похоже, вы включаете первым в программу student.h
.
Тогда вы получаете в тексте сначала объявление класса students
, которое начинается как
class students {
private:
vector <student> list;
но в этот момент компилятору неизвестно, что такое student
. Вот он и ругается...
И, кстати, когда он доходит до vector
, то он не понимает, о чем речь - потому что
using namespace std;
у вас включено в результате после объявления students
...
Интересно, что если вы включите первым students.h
, то из-за того, что он сначала включает student.h
- то все заработает.
Но вообще-то избегайте таких включений, когда А включает Б, а Б включает А - даже при наличии #pragma once
... Как минимум - результат зависит от порядка включения, а это нехорошо...
Классическая ошибка зацикленного включения заголовочных файлов друг в друга: student.h
включает students.h
, а students.h
включает student.h
.
Не пытайтесь включать заголовочные файлы друг в друга зацикленным образом - это ничего не дает, а приводит лишь к "необъяснимым" ошибкам.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу сделать сортировку пирамидальную (обратную) То есть что бы массив в котором есть числа 4,5,3,0 отсортировало не так 0,3,4,5, а так 5,4,3,0Вот функции...
Написать программу, которая бы запускала в памяти еще один процесс и оставляла бы его работать в бесконечном циклеПри повторном запуске...