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

Не хочет реализоваться класс - C++

Восстановить пароль Регистрация
 
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
30.04.2011, 13:38     Не хочет реализоваться класс #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
class sell
{
public:
       int tt(void)
       {
        return 1;
       }
};
 
class test
{
public:
    test(void)
        {
            for(int i = 0; i < 10; i++)
                this->sellsl[i] = new sell;
        }
 
        void run(void)
        {
            int k = sellsl[2]->tt(); 
        }
...
...
...
private:
    sell* sells[10];
};
Код примерное такой. У класса test все функции работают хорошо, кроме run.
Пишет что участок памяти не может быть read и т.д. Не могу понять почему... this->sellsl[i] = new sell; - я же вроде все правильно сделал..
Можете помочь? Все утро голову себе ломаю и не знаю в чем дело.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 13:38     Не хочет реализоваться класс
Посмотрите здесь:

C++ Оцените класс больших чисел класс big_int
Как преобразовать указатель на класс к указателю на асбтрактный класс? C++
Класс, для полей которого нужно использовать класс C++
C++ Класс Quadrangle (четырехугольник). Класс хранит Декартовы координаты четырех углов четырехугольника
C++ Область видимости. один класс не видит другой класс
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Unforgiven_00
60 / 60 / 2
Регистрация: 12.10.2010
Сообщений: 129
30.04.2011, 13:44     Не хочет реализоваться класс #2
Буква лишняя
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.04.2011, 16:08     Не хочет реализоваться класс #3
Рекомендую читать сообщения об ошибках.
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
04.05.2011, 12:02  [ТС]     Не хочет реализоваться класс #4
Да не. Это я пример написал и уже в самом примере сделал ошибку. Сейчас покажу сам док.

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
// Файл menu_shop.h
#include "items.h"
#include <sstream>
#include <string>
 
class menu_shop
{
public:
    ...
    ...
    ...
private:
    bool buy(User* user,std::string msg);
    Items * items[20];
};
 
...
...
...
 
menu_shop::menu_shop(void)
{
    for(int i = 0; i < 10; i++)
        this->items[i] = new Items(i);
}
 
bool menu_shop::sell(User* user,std::string msg)
{
    std::ostringstream idd;
    idd << items[1]->id;
    say(MC_COLOR_RED + "<<-- Item id: " + MC_COLOR_GREEN + idd.str(),user);
    say("    9. Exit",user);
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Файл items.h
#include <string>
 
class Items
{
public:
    Items(int namber);
    int id;
    int namber;
    std::string name;
private:
};
 
#include "items.h"
 
Items::Items(int n)
    :
    id(n)
    {
    }
Немножко сократил код.
При открытии функцию buy выводит ошибку: "Функция по адресу такому-то не может обратится к памяти по адресу такому-то. Память не может быть реал и т.д." .
Т.е. не может найти переменную items[1]->id. Но почему? И же в конструкторе сделал:

for(int i = 0; i < 10; i++)
this->items[i] = new Items(i);
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.05.2011, 12:14     Не хочет реализоваться класс #5
items[20], но инициализируешь только 10 из них.
Если проблема в методе buy, то где его код? По ошмётку кода сложно что-либо сказать.
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
04.05.2011, 12:54  [ТС]     Не хочет реализоваться класс #6
Ой перепутал. НЕ buy, а sell

C++
1
2
3
4
5
6
7
bool menu_shop::sell(User* user,std::string msg)
{
        std::ostringstream idd;
        idd << items[1]->id; // во тут почему-то не пашет.
        say(MC_COLOR_RED + "<<-- Item id: " + MC_COLOR_GREEN + idd.str(),user);
        say("    9. Exit",user);
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.05.2011, 13:08     Не хочет реализоваться класс #7
Падает прям с индексом Одын? Поставь прерывание в конструкторе и убедись, что создаётся именно этим конструктором. Такая ошибка возникает при обращении по неинициализированному указателю.
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
04.05.2011, 13:30  [ТС]     Не хочет реализоваться класс #8
C++
1
2
3
4
5
6
7
8
bool menu_shop::sell(User* user,std::string msg)
{
        items[1] = new Items(1);
        std::ostringstream idd;
        idd << items[1]->id; // во тут почему-то не пашет.
        say(MC_COLOR_RED + "<<-- Item id: " + MC_COLOR_GREEN + idd.str(),user);
        say("    9. Exit",user);
}
Тоже ошибка!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 13:36     Не хочет реализоваться класс
Еще ссылки по теме:

Подробно прокомментировать класс PolarCoordinates, представляющий собой класс координат точки на плоскости C++
C++ Создайте класс, в котором есть ostream& operator<<. Класс должен содержать очередь с приоритетом
Класс (почемуто не хочет найти человека у которого бал выше 75) C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.05.2011, 13:36     Не хочет реализоваться класс #9
koka3000, new надеюсь не переопределен?
И какая ошибка конкретнеее?
Yandex
Объявления
04.05.2011, 13:36     Не хочет реализоваться класс
Ответ Создать тему
Опции темы

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