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

Синтаксические ошибки при компиляции классов - C++

Войти
Регистрация
Восстановить пароль
 
Slavytuch
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 79
25.11.2014, 22:13     Синтаксические ошибки при компиляции классов #1
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
// DiscreteMath_Lab11.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
 
class point
{
public:
    int x_koord;
    int y_koord;
};
 
int distance(point a, point b)
{
    int res = 0;
    res = sqrt(pow(b.x_koord - a.x_koord, 2) + pow(b.y_koord - a.y_koord, 2));
    return res;
}
 
class komivoiyajer
{
public:
    int rast = 0;
    int min_rast = INT_MAX;
    int path[9];
    point *R = new point[10];
    void madness()
    {
        R[0].x_koord = 0;
        R[0].y_koord = 0;
        for (int a = 0; a < 10;++a)
        for (int b = 0; b < 10; ++b)
        for (int c = 0; c < 10; ++c)
        for (int d = 0; d < 10; ++d)
        for (int e = 0; e < 10; ++e)
        for (int f = 0; f < 10; ++f)
        for (int g = 0; g < 10; ++g)
        for (int h = 0; h < 10; ++h)
        for (int i = 0; i < 10; ++i)
        {
            rast= distance(R[a], R[b]) + distance(R[b], R[c]) + distance(R[c], R[d]) + distance(R[d], R[e]) + distance(R[e], R[f]) + distance(R[f], R[g]) + distance(R[g], R[h]) + distance(R[h], R[i]) + distance(R[i], R[0]);
            if (rast < min_rast)
            {
                min_rast = rast;
                path[0] = a; path[1] = b; path[2] = c; path[3] = d; path[4] = e; path[5] = f; path[6] = g; path[7] = h; path[8] = i;
            }
        }
        cout << "Min path = " << min_rast;
        cout << endl << "Rout is:" << endl;
        for (int i = 0; i < 9; ++i)
            cout << path[i]<<" ";
        system("pause>>end");
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream inp("C:\\Learning and stuff\\Input.txt");
    komivoiyajer B;
    for (int i = 1; i < 10; ++i)
    {
        inp >> B.R[i].x_koord;
        inp >> B.R[i].y_koord;
    }
    B.madness();
    return 0;
}

Выдаёт ряд ошибок (24) непонятной мне природы:
Ошибка 2 error C2039: iterator_category: не является членом "point" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 371 1 DiscreteMath_Lab11
Ошибка 3 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "iterator_category" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 371 1 DiscreteMath_Lab11
Ошибка 4 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 371 1 DiscreteMath_Lab11
Ошибка 5 error C2602: std::iterator_traits<point>::iterator_category не является членом базового класса "std::iterator_traits<point>" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 371 1 DiscreteMath_Lab11
Ошибка 6 error C2868: std::iterator_traits<point>::iterator_category: недопустимый синтаксис для "using"-объявления; требуется полное имя c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 371 1 DiscreteMath_Lab11
Ошибка 7 error C2039: value_type: не является членом "point" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 372 1 DiscreteMath_Lab11
Ошибка 8 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "value_type" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 372 1 DiscreteMath_Lab11
Ошибка 9 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 372 1 DiscreteMath_Lab11
Ошибка 10 error C2602: std::iterator_traits<point>::value_type не является членом базового класса "std::iterator_traits<point>" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 372 1 DiscreteMath_Lab11
Ошибка 11 error C2868: std::iterator_traits<point>::value_type: недопустимый синтаксис для "using"-объявления; требуется полное имя c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 372 1 DiscreteMath_Lab11
Ошибка 12 error C2039: difference_type: не является членом "point" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 373 1 DiscreteMath_Lab11
Ошибка 13 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "difference_type" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 373 1 DiscreteMath_Lab11
Ошибка 14 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 373 1 DiscreteMath_Lab11
Ошибка 15 error C2602: std::iterator_traits<point>::difference_type не является членом базового класса "std::iterator_traits<point>" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 373 1 DiscreteMath_Lab11
Ошибка 16 error C2868: std::iterator_traits<point>::difference_type: недопустимый синтаксис для "using"-объявления; требуется полное имя c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 373 1 DiscreteMath_Lab11
Ошибка 17 error C2039: pointer: не является членом "point" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 375 1 DiscreteMath_Lab11
Ошибка 18 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "pointer" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 375 1 DiscreteMath_Lab11
Ошибка 19 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 375 1 DiscreteMath_Lab11
Ошибка 20 error C2602: std::iterator_traits<point>:ointer не является членом базового класса "std::iterator_traits<point>" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 375 1 DiscreteMath_Lab11
Ошибка 21 error C2868: std::iterator_traits<point>:ointer: недопустимый синтаксис для "using"-объявления; требуется полное имя c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 375 1 DiscreteMath_Lab11
Ошибка 22 error C2039: reference: не является членом "point" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 376 1 DiscreteMath_Lab11
Ошибка 23 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "reference" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 376 1 DiscreteMath_Lab11
Ошибка 24 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 376 1 DiscreteMath_Lab11
Ошибка 25 error C2602: std::iterator_traits<point>::reference не является членом базового класса "std::iterator_traits<point>" c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 376 1 DiscreteMath_Lab11
Ошибка 26 error C2868: std::iterator_traits<point>::reference: недопустимый синтаксис для "using"-объявления; требуется полное имя c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 376 1 DiscreteMath_Lab11
Понятия не имею что не так
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2014, 22:13     Синтаксические ошибки при компиляции классов
Посмотрите здесь:

C++ Синтаксические ошибки при компиляции программы на структуру
Наследование классов, ошибки при компиляции C++
C++ Синтаксические ошибки при сортировке массива пузырьком
ошибка при компиляции проги, использущей шаблоны классов C++
Ошибки при компиляции C++
Синтаксические ошибки C++
C++ Ошибки при компиляции
Ошибки при компиляции C++
Синтаксические ошибки при компиляции программы C++
C++ Ошибки при компиляции
C++ Ошибки при компиляции
C++ Ошибки при компиляции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
3137 / 1577 / 426
Регистрация: 18.10.2014
Сообщений: 2,920
25.11.2014, 22:35     Синтаксические ошибки при компиляции классов #2
Цитата Сообщение от Slavytuch Посмотреть сообщение
Выдаёт ряд ошибок (24) непонятной мне природы:
Ну так, а чего вы хотели? Кто вас научил делать 'using namespace std;' в коде?

Вы тупо вывалили все пространство имен 'std' в глобальное пространство имен. В пространстве имен 'std' есть своя шаблонная функция 'std::distance', работающая на итераторах. Она тоже является кандидатом на вызов в ваших вызовах 'distance'. Но при компиляции этой стандартной версии для вашего класса 'point' (который итератором не является) происходят вышепроцитированные ошибки.

Либо перестаньте заниматься такой фигней, как 'using namespace std', либо явно указывайте в своих вызовах '::distance'.
Yandex
Объявления
25.11.2014, 22:35     Синтаксические ошибки при компиляции классов
Ответ Создать тему
Опции темы

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