Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
#1

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

30.04.2011, 13:38. Просмотров 376. Ответов 8
Метки нет (Все метки)

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; - я же вроде все правильно сделал..
Можете помочь? Все утро голову себе ломаю и не знаю в чем дело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 13:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не хочет реализоваться класс (C++):

Класс (почемуто не хочет найти человека у которого бал выше 75) - C++
Суть задания в том что есть несколько студентов (тут я 2 зделал). Мы заполняем даные про них (Имя,Група,Оценки). Вот хочу зделать так,...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

Глючит страшно курсор: хочет сам все выделяет, хочет удаляет часть текста, хочет прыгает где ему вздумаеться - Периферийные устройства
Подскажите как быть...глючит страшно курсор: хочет сам все выделяет, хочет удаляет часть текста, хочет прыгает где ему вздумаеться(у меня...

Реализоваться рисование на форме равносторонних треугольников под управлением мыши - C#
Всем привет! Дано следующее задание, помогите разобраться: &quot;Реализоваться рисование на форме равносторонних треугольников под управлением...

8
Unforgiven_00
60 / 60 / 2
Регистрация: 12.10.2010
Сообщений: 129
30.04.2011, 13:44 #2
Буква лишняя
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.04.2011, 16:08 #3
Рекомендую читать сообщения об ошибках.
0
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);
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.05.2011, 12:14 #5
items[20], но инициализируешь только 10 из них.
Если проблема в методе buy, то где его код? По ошмётку кода сложно что-либо сказать.
0
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);
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.05.2011, 13:08 #7
Падает прям с индексом Одын? Поставь прерывание в конструкторе и убедись, что создаётся именно этим конструктором. Такая ошибка возникает при обращении по неинициализированному указателю.
0
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);
}
Тоже ошибка!
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
04.05.2011, 13:36 #9
koka3000, new надеюсь не переопределен?
И какая ошибка конкретнеее?
0
04.05.2011, 13:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 13:36
Привет! Вот еще темы с ответами:

JBuilder8 не хочет находить класс Object. - Java
У кого-нибудь работает восьмой JBuilder? Не хочет находить класс Object, вообще ведет себя странно.. Может чего надо поднастроить?

Класс, созданный в DLL, не хочет удалятся из вызывающего приложения - C++ Builder
Привет! Приведу пример проблеммы на тестовом примере. Создаю DLL при помощи визарда: С++ Style,Multi Threaded, VC++ Style DLL. ...

Сессия не хочет сохранять в себе класс, при переходе на другую страницу - C# ASP.NET
Сессия не хочет сохранять в себе класс, при переходе на другую страницу. Это работает тока если класс зарегестрирован в СОМ обьектах - а...

Интернет не хочет работать,все хорошо подключается а браузер открывать не хочет первую страницу отображает - Windows 8, 8.1
ребят такой вопрос,установил винду 8,все норм только интернет не хочет работать,все хорошо подключается а браузер открывать не хочет первую...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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