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

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

Войти
Регистрация
Восстановить пароль
 
login
2 / 1 / 0
Регистрация: 16.04.2009
Сообщений: 90
#1

Ошибка создания экземпляра класса - C++

21.04.2011, 23:46. Просмотров 884. Ответов 4
Метки нет (Все метки)

Собственно ошибка в мейне error C2227: left of '->AddLast' must point to class/struct/union/generic type

Содержимое StringList.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
#include <string>
struct ListItem
{
        std::string item;
        ListItem *next;
    };  
class StringList
{
    private:
        ListItem *first;
        ListItem *last;
    public:
    StringList();   
    ~StringList();
    void RemoveItem(std::string i);
    void RemoveAfter(std::string i);
    void AddLast(std::string i);
};
Содержимое
StringList.cpp:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "StringList.h"
StringList::StringList()
{
    first=last=NULL;
}
StringList::~StringList()
{
    ListItem *current=NULL;
    ListItem *next=first;
    while (next)
    {
        current=next;
        next=next->next;
        delete current;
    }
}
 
void StringList::RemoveItem(std::string i)
{
    ListItem *prev=NULL;
    ListItem *current=first;
    while (current) 
    {
        if ((*current).item==i)
        {
            if (prev) 
            {
                prev->next=current->next;
            }
            if (current==last)
            {last=prev;}
            delete current;
        }
        else
        {
            prev=current;
            current=current->next;
        }
    }
}
void StringList::RemoveAfter(std::string i)
{
    ListItem *prev = NULL;
    ListItem *good = first;
    while (good !=NULL && good->item !=i)
    {
        prev=good;
        good=good->next;
    }
    ListItem *current=NULL;
    ListItem *next=good;
    while (next)
    {
        current=next;
        next=next->next;
        delete current;
    }
}
void StringList::AddLast(std::string i)
{
    ListItem *newItem = new ListItem();
    (*newItem).item=i;
    if (last == NULL)
    {
        first=newItem;
    }
    else
    {
        last->next = newItem;
    }
    last=newItem;
}
Содержимое main.cpp:
C++
1
2
3
4
5
6
7
8
#include <stdio.h>
#include "StringList.h"
void main()
{
StringList mylist();
ListItem x;
mylist->AddLast("abcde");
}
Что же все-таки не так? На различные принципиальные моменты внимание прошу не обращать, а только на собственно ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 23:46     Ошибка создания экземпляра класса
Посмотрите здесь:

Способ создания экземпляра класса - C++
Ниже в скрипте отметила два варианта. В чужих скриптах встречаю оба время от времени. Интересно, в чем принципиальное различие и как...

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

Ошибка в создании экземпляра класса - C++
Начал изучать шаблоны , и не могу переделать , подскажите что не так . template &lt;class data_one&gt; class linklist { private: ...

Ошибка при создании экземпляра класса - C++
На скринах показано, где ошибка Вот код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iomanip&gt; #include...

Ошибка при добавление экземпляра класса - C++
Добавляю один товар, все хорошо. При повторном добавлении название и вид предыдущих товаров заменяется на данные вновь добавленного...

Создание нового экземпляра дочернего класса из экземпляра базового - C++
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... У меня есть несколько классов: все они...

При создании экземпляра класса, создается 2 экземпляра вместо 1 - C++
Подсчет экземпляров ведется с помощью статического члена num_dogs, который во всех трех конструкторах (1. по умолчанию, 2. со всеми...

Ошибка при добавлении экземпляра класса в поток - C++
Добрый день, возникла ошибка при добавлении екземпляра класса в поток, не могу разобраться, прилагаются скрины! П.5.18.Правил ...

Сложение экземпляра базового класса и экземпляра наследника - C++
Добрый вечер! Моя задача - сложить экземпляр базового класса и наследника. Нужно сделать так, чтобы результат сложения &quot;знал&quot;...

Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? - C++
Если уже есть готовый объект базового класса. Могу я построить экземпляр дочернего на его основе, (напр., получив такой базовый объект...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
21.04.2011, 23:52     Ошибка создания экземпляра класса #2
Для использования оператора стрелка переменная mylist должна быть указателем.
login
2 / 1 / 0
Регистрация: 16.04.2009
Сообщений: 90
21.04.2011, 23:54  [ТС]     Ошибка создания экземпляра класса #3
Дело в том, что
mylist.AddLast("abcde")
тоже не работает
error C2228: left of '.AddLast' must have class/struct/union
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
22.04.2011, 00:03     Ошибка создания экземпляра класса #4
а попробуй вот так
C++
1
StringList mylist;
login
2 / 1 / 0
Регистрация: 16.04.2009
Сообщений: 90
22.04.2011, 00:07  [ТС]     Ошибка создания экземпляра класса #5
Да ладно! Спасибо большое, второй день парюсь, а такая ерунда оказывается.
Yandex
Объявления
22.04.2011, 00:07     Ошибка создания экземпляра класса
Ответ Создать тему
Опции темы

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