Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
1

Не хочет затолкнуть объект в List

27.04.2013, 01:59. Просмотров 494. Ответов 11
Метки нет (Все метки)

У меня есть класс TSettings.
Я создал list в котором будут хранится объекты данного класса.
Пытаюсь запихнуть в list выдает error:
[bcc32 Error] Unit1.cpp(23): E2238 Multiple declaration for 'SaveSettings'
[bcc32 Error] Unit1.cpp(17): E2344 Earlier declaration of 'SaveSettings'
[bcc32 Error] Unit1.cpp(23): E2141 Declaration syntax error

C++
1
2
3
4
5
6
7
8
9
10
//---------------------------------------------------------------------------
int n = 10; //Number of settings
list<TSettings> NewSettings(n); //NEW SETTINGS
list<TSettings> SaveSettings(n); //SAVE SETTINGS
list<TSettings> CurSettings(n);  //CURRENT SETTINGS
//---------------------------------------------------------------------------
//SETTINGS
//---------------------------------------------------------------------------
TSettings Trial("Trial",0);
SaveSettings.push_back(Trial);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 01:59
Ответы с готовыми решениями:

Затолкнуть в вектор aray
const int size=3; int aray={{1,1,0},{1,1,-1},{1,0,-1}}; vector &lt;int&gt; s; for(int...

Почему не хочет определять объект?
Подскажите, как можно уладить данную проблему сценарий написал в отдельном файле вот часть...

Объект со сцены в List
У меня есть объект на сцене Chunk. К нему прикреплено куча блоков. Я хочу записать эти блоки в...

Метод не хочет возвращать объект типа класса которому он принадлежит
Есть класс matrix и один из методов этого класса plus который возвращает объект типа matrix Но...

11
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
27.04.2013, 02:13 2
заталкай указатель
C++
1
2
3
4
list<TSettings*> NewSettings(n);
...
TSettings *Trial = new TSettings("Trial",0);
 NewSettings.push_back(Trial);
0
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 02:20  [ТС] 3
Цитата Сообщение от ssXXss Посмотреть сообщение
заталкай указатель
C++
1
2
3
4
list<TSettings*> NewSettings(n);
...
TSettings *Trial = new TSettings("Trial",0);
 NewSettings.push_back(Trial);
Пробовал.
Такая же ошибка..
--
Пишет что список объявлен несколько раз.
Хотя на самом деле я просто пытаюсь затолкнуть объект.
0
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
27.04.2013, 02:27 4
в студии вот такое дело проходит :
C++
1
2
3
4
5
6
7
8
int _tmain(int argc, _TCHAR* argv[])
{
    vector< SectionInfo* >venSect;
    list<vector< SectionInfo* >*> ls(1000);
    ls.push_back(&venSect);
....
return 0;
}
Добавлено через 1 минуту
http://www.cplusplus.com/reference/list/list/
0
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 02:29  [ТС] 5
Цитата Сообщение от ssXXss Посмотреть сообщение
в студии вот такое дело проходит :
C++
1
2
3
4
5
6
7
8
int _tmain(int argc, _TCHAR* argv[])
{
    vector< SectionInfo* >venSect;
    list<vector< SectionInfo* >*> ls(1000);
    ls.push_back(&venSect);
....
return 0;
}
Добавлено через 1 минуту
http://www.cplusplus.com/reference/list/list/
Я просто пишу в C++BuilderXE3 , попробую еще откомпилировать в VS2010, может трабл в компиляторе?
0
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
27.04.2013, 02:43 6
в vs2012 инструментами vs2010 собирается:
C++
1
2
3
4
5
6
7
    std::vector< int > *v1 = new std::vector< int >;
    std::vector< int > *v2 = new std::vector< int >;
    std::vector< int > *v3 = new std::vector< int >;
    std::list<std::vector< int > *> ls(12345);
    ls.push_back(v1);
    ls.push_back(v2);
    ls.push_back(v3);
0
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 02:57  [ТС] 7
Цитата Сообщение от ssXXss Посмотреть сообщение
в vs2012 инструментами vs2010 собирается:
C++
1
2
3
4
5
6
7
    std::vector< int > *v1 = new std::vector< int >;
    std::vector< int > *v2 = new std::vector< int >;
    std::vector< int > *v3 = new std::vector< int >;
    std::list<std::vector< int > *> ls(12345);
    ls.push_back(v1);
    ls.push_back(v2);
    ls.push_back(v3);
В студии компилируется но не запускается выдает креш!
Ты попробуй создать свой класс и затолкнуть его объекты туда.
0
266 / 188 / 33
Регистрация: 15.01.2011
Сообщений: 681
27.04.2013, 03:09 8
не знаю какой у тебя креш выдает вот из часть исходника win32 vs2010:
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
int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPTSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
 
    // TODO: разместите код здесь.
    MSG msg;
    HACCEL hAccelTable;
    std::vector< int > *v1 = new std::vector< int >;
    std::vector< int > *v2 = new std::vector< int >;
    std::vector< int > *v3 = new std::vector< int >;
    std::list<std::vector< int > *> ls(12345);
    ls.push_back(v1);
    ls.push_back(v2);
    ls.push_back(v3);
    // Инициализация глобальных строк
    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadString(hInstance, IDC_TEST_COLOR, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);
 
    // Выполнить инициализацию приложения:
    if (!InitInstance (hInstance, nCmdShow))
    {
        return FALSE;
    }
 
    hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_TEST_COLOR));
 
    // Цикл основного сообщения:
    while (GetMessage(&msg, NULL, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 
    return (int) msg.wParam;
}
остальное все по дефолту что студия сама сворганила

Добавлено через 1 минуту
у меня все нормально запускается.
0
Эксперт С++
8303 / 6057 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
27.04.2013, 03:22 9
young_developer, Покажи класс, скорее всего конструкторы неправильно определил.

Добавлено через 3 минуты
Код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <list>
//---------------------------------------------------------------------------
class TSettings
{
 public:
  TSettings(){};
  TSettings(const TSettings& s){};
  TSettings operator=(const TSettings& s){};
  virtual ~TSettings(){};
};
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n = 10; //Number of settings
std::list<TSettings> NewSettings(n); //NEW SETTINGS
std::list<TSettings> SaveSettings(n); //SAVE SETTINGS
std::list<TSettings> CurSettings(n);  //CURRENT SETTINGS
 
TSettings Trial;
SaveSettings.push_back(Trial);
}
//--------------------------------------------------------------------------
В XE3 нормально работает ...
0
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 15:08  [ТС] 10
.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include<string>
using namespace std;
class TSettings
{
    string m_name; //name of sett
    string m_value;  //value  of sett
    public:
    //Ctr
    TSettings();
    TSettings(string i_value,string i_name);
    TSettings(string i_name);
    //GET
    string GetValue() const;
    string GetName() const;
    //SET
    void SetValue(string i_value);
    void SetName(string i_name);
    void Set(string i_name,string i_value);
    //OPERATORS
    void operator()(string i_name,string i_value);
};
--
.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
#include"TSettings.h"
 
//---------------------------------------------------------------------------
TSettings::TSettings():m_value(0),m_name("NULL"){}  //empty ctr
//---------------------------------------------------------------------------
TSettings::TSettings(string i_value,string i_name):m_value(i_value),m_name(i_name){} //ctr
//---------------------------------------------------------------------------
TSettings::TSettings(string i_name):m_name(i_name),m_value(0){} //ctr
//---------------------------------------------------------------------------
string TSettings::GetValue() const
{
    return m_value;
}
//---------------------------------------------------------------------------
string TSettings::GetName() const
{
    return m_name;
}
//---------------------------------------------------------------------------
void TSettings::SetValue(string i_value)
{
    m_value = i_value;
}
//---------------------------------------------------------------------------
void TSettings::SetName(string i_name)
{
    m_name = i_name;
}
//---------------------------------------------------------------------------
void TSettings::Set(string i_name,string i_value)
{
    m_name = i_name;
    m_value = i_value;
}
//---------------------------------------------------------------------------
void TSettings::operator()(string i_name,string i_value)
{
  Set(i_name,i_value);
}
//--------------------------------------------------------------------------
0
570 / 553 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
27.04.2013, 16:07 11
Цитата Сообщение от young_developer Посмотреть сообщение
Unit1.cpp(17): E2344 Earlier declaration of 'SaveSettings'
А что написано в 17 строке?
0
Эксперт С++
8303 / 6057 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
27.04.2013, 16:22 12
Цитата Сообщение от young_developer Посмотреть сообщение
C++
1
#pragma once
Вы уверены что это работает адекватно в С++Builder ?

Вообще ошибки не вижу ... разве что стоит передавать строки как константную ссылку.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2013, 16:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как заменить объект в std::list?
Всем доброго времени суток, к делу. Как сменить объект в списке другим объектом? Вот например с...

Как удалить объект списка list?
у меня есть pPlan - это указатель на класс Plan. Listabit - список, созданный в классе Plan ....

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

Добавление элемента в List<T>: Ссылка на объект не указывает на экземпляр объекта
При выполнении r.left.Add(double), возникает ошибка &quot;Ссылка на объект не указывает на экземпляр...

Как получить указатель на объект класса из списка std::list?
Как получить указатель на объект класса из списка list? Правильно ли list&lt;Myclass&gt; ::iterator...

Как заменить объект List одного класса объектом другого?
к примеру дано нам 1 объект класса Book , я хочу его вставить в класс Table вместо удаленного...


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

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

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