Форум программистов, компьютерный форум CyberForum.ru

Ошибки VS - C++

Восстановить пароль Регистрация
 
supra7sky
 Аватар для supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
06.05.2013, 13:55     Ошибки VS #1
Скомпилил проект с классом Material с пустым мейном, все ок.
Добавил новый заголовочный файл functions.h, скомпилил - ошибки связанные с Material. Удалил этот functions.h, ошибки продолжаются.
В файле Material.h ничего не менял, даже не заглядывал туда.
- Ошибки бредовые
Попробуйте скомпилировать у себя этот класс, отпишитесь что получится или может знаете как это решить...?

Содержимое файла:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <iostream>
#include <string>
using namespace std;
 
class Material {
public:
    string name;
    unsigned count;
    float price_one,
         _price_all;
// Конструкторы
    Material(string NAME, unsigned COUNT, float PRICE_ONE);
    Material(const Material &);
 
// Инициализация
    void Init(string NAME, unsigned COUNT, float PRICE_ONE);
 
// Логические операторы
    bool operator<  (Material );
    bool operator<= (Material );
    bool operator== (Material );
    bool operator!= (Material );
    bool operator>= (Material );
    bool operator>  (Material );
 
//Ввод/Вывод
    friend istream &operator>> (istream &stream, Material &obj);
    friend ostream &operator<< (ostream &stream, Material &obj);
    
    struct Header {
        friend ostream &operator<< (ostream &stream, Header);
    };
    struct Footer {
        friend ostream &operator<< (ostream &stream, Footer);
    };
};
 
/* Конструкторы */
Material::Material(string NAME = "No_name", unsigned COUNT = 0, float PRICE_ONE = 0) {
     name = NAME;
     count = COUNT;
     price_one = PRICE_ONE;
    _price_all = price_one * count;
}
 
Material::Material(const Material &OBJECT) {
    name = OBJECT.name;
    count = OBJECT.count;
    price_one = OBJECT.price_one;
    _price_all = OBJECT._price_all;
}
 
/* Инициализация */
void Material::Init(string NAME, unsigned COUNT = 0, float PRICE_ONE = 0)
{
     name = NAME;
     count = COUNT;
     price_one = PRICE_ONE;
    _price_all = price_one * count;
}
 
/* Логические операторы */
bool Material::operator < (Material R_OPER) {
    return name < R_OPER.name;
}
 
bool Material::operator<= (Material R_OPER) {
    return name <= R_OPER.name;
}
 
bool Material::operator== (Material R_OPER) {
    return name == R_OPER.name;
}
 
bool Material::operator!= (Material R_OPER) {
    return name != R_OPER.name;
}
 
bool Material::operator>= (Material R_OPER) {
    return name >= R_OPER.name;
}
 
bool Material::operator > (Material R_OPER) {
    return name > R_OPER.name;
}
 
/* Ввод/Вывод */
istream &operator>> (istream &stream, Material &obj) {
    cin.sync();
    cout << "\nМатериал: ";       getline(cin, obj.name);
    cout << "Количество: ";       stream >> obj.count;
    cout << "Цена за единицу: ";  stream >> obj.price_one;
    obj._price_all = obj.count * obj.price_one;
    return stream;
}
 
ostream &operator<< (ostream &stream, Material &obj) {
    stream << endl 
           << obj.name << "\t\t|";
    stream << obj.count << "\t\t|";
    stream << obj.price_one << "\t\t|";
    stream << obj._price_all << endl;
    return stream;
}
 
ostream &operator<< (ostream &stream, Material::Header notused) {
    stream << "\n_____________________________________________________________________________"
           << "\nНаименование основных средств\t|Количество\t|Цена за ед.\t|Цена"
           << "\n-----------------------------------------------------------------------------";
    return stream;
}
 
ostream &operator<< (ostream &stream, Material::Footer notused) {
    stream << endl
           << "----------------------------------------------------------------------------";
    return stream;
}
 
namespace material {
    Material::Header header;
    Material::Footer footer;
};


Список ошибок:
Кликните здесь для просмотра всего текста
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): error C2011: Material: переопределение типа "class"
1> c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): см. объявление "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2027: использование неопределенного типа "Material"
1> c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): см. объявление "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "NAME"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "NAME"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2079: "string" использует неопределенный class "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2440: инициализация: невозможно преобразовать "const char [8]" в "int"
1> Не существует контекста, в котором такое преобразование возможно
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2062: тип "unsigned int" не требуется
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2059: синтаксическая ошибка: )
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(46): error C2027: использование неопределенного типа "Material"
1> c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): см. объявление "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(46): error C2226: синтаксическая ошибка: непредвиденный тип "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(46): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(46): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(54): error C2027: использование неопределенного типа "Material"
1> c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): см. объявление "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(54): error C2872: string: неоднозначный символ
1> может быть "c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39) : int string"
1> или "c:\program files (x86)\microsoft visual studio 10.0\vc\include\xstring(2063) : std::string"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(54): error C2872: string: неоднозначный символ
1> может быть "c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(39) : int string"
1> или "c:\program files (x86)\microsoft visual studio 10.0\vc\include\xstring(2063) : std::string"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(54): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "NAME"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(54): error C2182: Init: недопустимое использование типа "void"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(54): error C2059: синтаксическая ошибка: )
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(55): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(55): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(63): error C2027: использование неопределенного типа "Material"
1> c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): см. объявление "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(63): error C2027: использование неопределенного типа "Material"
1> c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(5): см. объявление "Material"
1>c:\users\user\documents\visual studio 2010\projects\supra\supra\material.h(63): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 13:55     Ошибки VS
Посмотрите здесь:

ошибки в С/С++ C++
ошибки C++
C++ ошибки
C++ Ошибки
ошибки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
06.05.2013, 14:02     Ошибки VS #2
У тебя даже отсутствует #include "stdafx.h"
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2013, 14:06     Ошибки VS #3
supra7sky, вынесите реализацию в cpp-файл и будет Вам благо (скорее всего).
supra7sky
 Аватар для supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
06.05.2013, 14:14  [ТС]     Ошибки VS #4
Цитата Сообщение от Bend3r Посмотреть сообщение
У тебя даже отсутствует #include "stdafx.h"
А на кой мне сдался stdafx ? Не загаживай форум своими бестолковыми ответами.
Yandex
Объявления
06.05.2013, 14:14     Ошибки VS
Ответ Создать тему
Опции темы

Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru