Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу Почему на работает написанная программа на С++
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
лисс лисс вне форума
Member
 
Сообщений: 200
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.05.2004
По умолчанию Почему на работает написанная программа на С++ - 20.01.2005, 18:17

Объясните пожалуйста, почему не работает данная программа....Все сделано по учебнику..а она не хочет...
Код:
#include<iostream>
using namespace std;
///////////////////////////////////////////////////////////////////////////////////////////////////////
class Distance
{
private:
    int feet;
    float inches;
public:
    Distance(): feet(0), inches(0.0)
    {}
    Distance(float fltfeet)
    {
  feet=int(fltfeet);
  inches=12*(fltfeet-feet);
    }
    Distance(int ft, float in): feet(ft), inches(in)
    {}
    void showdist()
    {
  cout << feet << "'-" << inches << '"';
    }
    friend Distance operator+(Distance, Distance);
};
//////////////////////////////////////////////////////////////////////////////////////
Distance operator+(Distance d1, Distance d2)
{
    int f=d1.feet+d2.feet;
    float i=d1.inches+d2.inches;
    if(inches>=12.0)
    {
  i-=12.0; f++;
    }
    return Distance(f,i);
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    Distance d1 =2.5;
    Distance d2 =1.25;
    Distance d3;

    cout << "nD1 = ";d1.showdist();
    cout << "nD2 = ";d2.showdist();

    d3=d1+10.0;
    cout << "nD3 = ";d3.showdist();
    d3=20.0+d1;
    cout << "nD3 = ";d3.showdist();
    cout << endl;
    return 0;
}
Ругается на дружественную функцию
Код:
--------------------Configuration: 11Frengl - Win32 Debug--------------------
Compiling...
Дружественная_Перегружаемая_Функция_PLUS.cpp
E:Program FilesMSDev98MyProjects11FrenglДружественная_Перегружаемая_Функция_PLUS.cpp(23) : fatal error C1001: INTERNAL COMPILER ERROR
        (compiler file 'msc1.cpp', line 1786) 
         Please choose the Technical Support command on the Visual C++ 
         Help menu, or open the Technical Support help file for more information
Error executing cl.exe.

Дружественная_Перегружаемая_Функция_PLUS.obj - 1 error(s), 0 warning(s)
Может это у меня компилятор тупит(а может быть и я)
Ответить с цитированием
  (#2 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 20.01.2005, 18:23

Ну для начала я бы порекомендовал не использовать русских букв в именах компилируемых файлов.
Ответить с цитированием
  (#3 (permalink)) Старый
лисс лисс вне форума
Member
 
Сообщений: 200
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.05.2004
По умолчанию 20.01.2005, 21:45

[b]Garik писал(а)
Цитата:
Ну для начала я бы порекомендовал не использовать русских букв в именах компилируемых файлов.
Переписал под именем OVERLOAD русских букв нет, результат тотже...Но самое интересное то что пару дней назад все работало прекрасно...А сегодня мне понадобилось написать подобную прогу и получился данный глюк..Я запустил вышеприведенную программу но и она перестала работать...Кроме NFS Underground 2 ничего не ставил правда сама игруха обновляла DirectX и дрова для видюхи... Может из-за DirectX'a ? Ну просто бред какой-то...Help me!!!
Ответить с цитированием
  (#4 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 21.01.2005, 00:01

Вот что по-поводу C1001 пишет MSDN:
Цитата:
INTERNAL COMPILER ERROR
(compiler file file, line number)

The compiler cannot generate correct code for a construct, probably due the combination of an expression and an optimization option. Try removing one or more optimization options and recompiling the function containing the line indicated in the error message.

You can probably fix the problem by removing one or more optimization options. To determine which option is at fault, remove options one at a time and recompile until the error message goes away. The options most commonly responsible are /Og, /Oi, and /Oa. Once you determine which option is responsible, you can disable it using the optimize pragma around the function where the error occurs and continue to use the option for the rest of the module.
А вообще заметна ошибка в Distance operator+(Distance d1, Distance d2), в 3-й строчке:
Код:
if(inches>=12.0)
Но вряд ли это бы вызвало внутреннюю ошибку компилятора...

А вот видеокарта и DirectX здесь точно не причем
Ответить с цитированием
  (#5 (permalink)) Старый
Jq Jq вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2005
По умолчанию 21.01.2005, 00:03

Напиши так: friend Distance operator+(const Distance&, const Distance&);
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
лисс лисс вне форума
Member
 
Сообщений: 200
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.05.2004
По умолчанию 21.01.2005, 00:06

Да на MSDN я и сам лазил.... Но только пользы мне это не принесло... Не имею представления как можно исправить данный косяк... Снесу нафиг всю систему и заново все поставлю... Мож поможет
Ответить с цитированием
  (#7 (permalink)) Старый
лисс лисс вне форума
Member
 
Сообщений: 200
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.05.2004
По умолчанию 21.01.2005, 00:12

Если кому не лень....Запустите вышеприведенную прогу у себя...Она абсолютно безвредная...Мне просто интересно будет она работать или нет.....
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно работает программа.. Почему??? arthurfok Visual C++ 3 10.09.2011 01:18
Не правильно работает программа.. Почему??? arthurfok Вопросы начинающих программистов 0 08.09.2011 23:04
Почему программа работает с ошибкой Leks100 Вопросы начинающих программистов 0 06.06.2011 16:49
Написанная программа не работает на 64 разрядных компьютерах РассЛ Visual Basic 1 10.02.2011 18:54
Gcc-4.5.1 почему программа не работает SeMiTr С/С++ 4 18.12.2010 20:28
На другом компьютере не работает написанная программа ГЫнок C++ Builder 2 17.05.2009 03:14
Как узнать почему написанная программа не читает формат JPG NiKOLA C++ Builder 2 21.12.2005 11:39
Написанная программа требует cnx DNK Delphi 0 15.11.2005 14:34
Interrupted System Call не работает написанная программа ФОНАРЬ C++ Builder 1 14.04.2005 07:29
Написанная программа не работает в отладчике и не работает в ОС Youri Visual C++ 0 28.05.2004 23:49
Почему написанная программа на С++ не работает вне среды разработки Youri Visual C++ 1 30.04.2004 14:16
Почему написанная программа на С++ работает только где есть С++ pinguin99 Visual C++ 2 17.02.2004 10:35



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов