Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы, ошибка 
V
    Опции темы
Metalex
Дата 6.12.2010, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Доброго времени суток всем знатокам С++.

У меня есть 2 класса:
Код

class Vector
{
public:
    float x;
    float y;
    
    Vector ()
    {
        x=0; 
        y=0;
    };

    void input ();
    void output ();

    friend Vector operator * (float m, Vector b);
    friend Vector operator + (Vector a, Vector b);
    friend Vector operator - (Vector a, Vector b);
           Vector operator += (Vector b);
           Vector operator = (Vector b);
};


Код

#include "Vector.h"

class Lattice
{
    int n;
public:
    Vector *Basis;
    Vector *GSo_Basis;
    Vector *LLL_redused;

    Lattice ();
    ~Lattice ();
    void SetBasis ();
    void GSo ();
    void LLL ();
    void ShowBasis ();
    void ShowGSo ();
    void ShowLLLredused ();
};


Констуктор второго класса:
Код

Lattice::Lattice ()
{
    cout<<"Введите количество базисных векторов решетки"<<endl;
    cin>>n;
    Vector *Basis = new Vector [n];
    Vector *GSo_Basis = new Vector [n];
    Vector *LLL_redused = new Vector [n];
}


Все компилится отлично, но при выполнении доходит до
Код

void Lattice::SetBasis ()
{
    cout<<"Введите координаты (x, y) каждого вектора"<<endl;
    for (int i=0; i<n; i++)
    {
        Basis[i].input ();     //<<----------------этого места и вылетает.
        LLL_redused[i]=Basis[i];
    }
}


Код

void Vector::input ()
{
    cin>>x>>y;
}


Не могу понять, в чем дело?
Помогите, пожалуйста.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2010, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Metalex @  6.12.2010,  00:57 Найти цитируемый пост)
 //<<----------------этого места и вылетает.

покажите как используется класс Lattice в main  ну и на всякий случай деструктор..

Добавлено через 1 минуту и 50 секунд
 smile 
Цитата(Metalex @  6.12.2010,  00:57 Найти цитируемый пост)
    cout<<"Введите количество базисных векторов решетки"<<endl;

юзер-френдли диалоги лучше не делать частью класса, а инициализировать его объект уже нужными данными..


--------------------
PM MAIL WWW   Вверх
Metalex
Дата 6.12.2010, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



ах, да, может поможет (стек вызовов, проект в 2008 студии):
Скрин
А также выбивает вот это:
файл xlocnum
Цитата

if (_First == _Last)
    _State |= ios_base::eofbit;
  if (_Ep == _Ac || _Errno != 0)
    _State |= ios_base::failbit;
  else
    _Val = _Ans;    // deliver value   //<<------------тут стрелочка
  return (_First);
  }


Добавлено через 1 минуту и 50 секунд
Код

Lattice::~Lattice ()
{    
    delete [] Basis;
    delete [] GSo_Basis;
    delete [] LLL_redused;
}


Код

int main ()
{
    setlocale(LC_ALL, "Russian");

    Lattice lattice;
    lattice.SetBasis ();
    lattice.GSo ();
    lattice.LLL ();
    lattice.ShowBasis ();
    lattice.ShowGSo ();
    lattice.ShowLLLredused ();

    system ("Pause");
    return 0;
}



Цитата(mes @  6.12.2010,  02:01 Найти цитируемый пост)
юзер-френдли диалоги лучше не делать частью класса, а инициализировать его объект уже нужными данными..

спасибо, учту!


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2010, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Metalex @  6.12.2010,  01:04 Найти цитируемый пост)
А также выбивает вот это:

ну так а какие данные вводите ? Вам можно только числа... smile

Это сообщение отредактировал(а) mes - 6.12.2010, 02:14


--------------------
PM MAIL WWW   Вверх
Metalex
Дата 6.12.2010, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Цитата(mes @  6.12.2010,  02:13 Найти цитируемый пост)
Вам можно только числа

в том и дело, что только числа и ввожу!!


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2010, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



а если убрать русскую локаль ?


--------------------
PM MAIL WWW   Вверх
Metalex
Дата 6.12.2010, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Попробовал. Не помогло.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2010, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(mes @  6.12.2010,  01:26 Найти цитируемый пост)
а если убрать русскую локаль ? 

хотя нет..у вас в стеке используется do_get.. значит локаль уже не причем.. 
остается ввод данных.. 
попробуйте для теста своих данных так :
Код

int main ()
{
   float x,y;
   for (size_t i=0; ..)
     std::cin >>x>>y; 
}



--------------------
PM MAIL WWW   Вверх
Metalex
Дата 6.12.2010, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



в мэйне ввод работает корректно..

Добавлено через 11 минут и 28 секунд
попробовал в мэйне так:
Код

int main ()
{
    setlocale(LC_ALL, "Russian");

    Lattice lattice;
    lattice.Basis[0].input();
}

не работает..


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2010, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Metalex @  6.12.2010,  01:36 Найти цитируемый пост)
в мэйне ввод работает корректно.. 

тогда Вы чего то утаили..  smile 


--------------------
PM MAIL WWW   Вверх
Metalex
Дата 6.12.2010, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



mes, я в предыдущий пост ответ добавил smile


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2010, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



мм..а откуда на скрине time_get ? где Вы работаете с датой ?


--------------------
PM MAIL WWW   Вверх
Metalex
Дата 6.12.2010, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



и в помине не было..


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Metalex
Дата 7.12.2010, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



никто не подскажет? smile 


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
sentry
Дата 7.12.2010, 01:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: 1
Всего: 10



Код

Vector *Basis = new Vector [n];
Vector *GSo_Basis = new Vector [n];
Vector *LLL_redused = new Vector [n];

Мне кажется, или тут вы присваиваете значения локальным переменным, а не данным-членам класса?  smile  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1342 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.