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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sergIKO
3 / 3 / 1
Регистрация: 20.01.2010
Сообщений: 91
#1

Имя класса - C++

22.01.2010, 12:06. Просмотров 412. Ответов 5
Метки нет (Все метки)

Проблема в следующем: почему при имени класса "distance" программа отказывается работать?как только я меняю имя класса,например убираю последнюю букву, все запускается. Неужели на работоспособность программы влияет конкретное имя?! ерунда какая-то
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
#include <iostream>
#include <conio.h>
using namespace std;
 
class distance
{
private:
    int feet;
    float inches;
public:
    distance(): feet(0),inches(0.0)
    {}
    distance(int ft,float in): feet(ft),inches(in)
    {}
    void showdist()
    {
        cout<<feet<<"\' "<<inches<<"\""<<endl;
    }
};
int main()
{
    distance d1;
    distance d2(4,3.45f);
    d1.showdist();
    d2.showdist();
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2010, 12:06     Имя класса
Посмотрите здесь:

C++ Как узнать имя экземпляра класса?
Вывести на экран имя класса C++
C++ Разработка класса: Abiturient: Фамилия, Имя, Отчество, Адрес, Оценки
Функция, имя которой совпадает с именем класса C++
C++ Не использовать имя класса при его реализации
Имя экземпляра объекта внутри класса на С++ C++
C++ Зачем функции дают тип возврата - имя класса?
C++ Создайте класс employee, который содержит имя (объект класса string) и номер (типа long) служащего
Определить имя класса C++
C++ Почему после конструктора первого класса стоит двоеточие и имя переменной, а не инициализация?
C++ Зачем пишется имя класса перед шаблоном?
C++ Как передать (или присвоить) имя в поле класса из main?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.01.2010, 12:08     Имя класса #2
e - если написана на русском ошибка по любому.
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
22.01.2010, 12:10     Имя класса #3
Что значит "отказывается работать" ??? Как именно отказывается?
Hint: в пространстве имен std тоже есть функция distance...... если дело в этом, то вот вред повсеместного использования using namespace std;
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
22.01.2010, 12:13     Имя класса #4
CheshireCat,

Hint: в пространстве имен std тоже есть функция distance...... если дело в этом, то вот вред повсеместного использования using namespace std;

Фишка в том, что студни кроме cin/cout больше ничего не используют, а имена функций пишут транскрипцией на латинице, поэтому им можно
sergIKO
3 / 3 / 1
Регистрация: 20.01.2010
Сообщений: 91
22.01.2010, 12:27  [ТС]     Имя класса #5
Цитата Сообщение от Genius Ignat Посмотреть сообщение
e - если написана на русском ошибка по любому.
да нет, на английском

Цитата Сообщение от CheshireCat Посмотреть сообщение
Что значит "отказывается работать" ??? Как именно отказывается?
Hint: в пространстве имен std тоже есть функция distance...... если дело в этом, то вот вред повсеместного использования using namespace std;
>h:\documents and settings\администратор\мои документы\visual studio 2008\projects\objects\main.cpp(22) : error C2872: distance: неоднозначный символ
1> может быть 'h:\documents and settings\администратор\мои документы\visual studio 2008\projects\objects\main.cpp(6) : distance'
1> или 'h:\program files\microsoft visual studio 9.0\vc\include\xutility(1881) : iterator_traits<_Iter>::difference_type std::distance(_InIt,_InIt)'
1>h:\documents and settings\администратор\мои документы\visual studio 2008\projects\objects\main.cpp(23) : error C2872: distance: неоднозначный символ
1> может быть 'h:\documents and settings\администратор\мои документы\visual studio 2008\projects\objects\main.cpp(6) : distance'
1> или 'h:\program files\microsoft visual studio 9.0\vc\include\xutility(1881) : iterator_traits<_Iter>::difference_type std::distance(_InIt,_InIt)'

Изменил distance на Distance - заработало.Похоже Вы правы спасибо
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
22.01.2010, 13:40     Имя класса #6
iterator_traits<_Iter>::difference_type std::distance(_InIt,_InIt) - это и есть та самая функция distance. Короче, старайся не использовать using namespace std; Пространства имен не так просто придуманы. Если бы ты написал правильно, ошибка бы даже не возникла.
Yandex
Объявления
22.01.2010, 13:40     Имя класса
Ответ Создать тему
Опции темы

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