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

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

Восстановить пароль Регистрация
 
young_developer
 Аватар для young_developer
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 01:59     Не хочет затолкнуть объект в List #1
У меня есть класс 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);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
27.04.2013, 02:13     Не хочет затолкнуть объект в List #2
заталкай указатель
C++
1
2
3
4
list<TSettings*> NewSettings(n);
...
TSettings *Trial = new TSettings("Trial",0);
 NewSettings.push_back(Trial);
young_developer
 Аватар для young_developer
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 02:20  [ТС]     Не хочет затолкнуть объект в List #3
Цитата Сообщение от ssXXss Посмотреть сообщение
заталкай указатель
C++
1
2
3
4
list<TSettings*> NewSettings(n);
...
TSettings *Trial = new TSettings("Trial",0);
 NewSettings.push_back(Trial);
Пробовал.
Такая же ошибка..
--
Пишет что список объявлен несколько раз.
Хотя на самом деле я просто пытаюсь затолкнуть объект.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
27.04.2013, 02:27     Не хочет затолкнуть объект в List #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/
young_developer
 Аватар для young_developer
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 02:29  [ТС]     Не хочет затолкнуть объект в List #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, может трабл в компиляторе?
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
27.04.2013, 02:43     Не хочет затолкнуть объект в List #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);
young_developer
 Аватар для young_developer
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 02:57  [ТС]     Не хочет затолкнуть объект в List #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);
В студии компилируется но не запускается выдает креш!
Ты попробуй создать свой класс и затолкнуть его объекты туда.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
27.04.2013, 03:09     Не хочет затолкнуть объект в List #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 минуту
у меня все нормально запускается.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
27.04.2013, 03:22     Не хочет затолкнуть объект в List #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 нормально работает ...
young_developer
 Аватар для young_developer
7 / 7 / 0
Регистрация: 12.12.2012
Сообщений: 62
27.04.2013, 15:08  [ТС]     Не хочет затолкнуть объект в List #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);
}
//--------------------------------------------------------------------------
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
27.04.2013, 16:07     Не хочет затолкнуть объект в List #11
Цитата Сообщение от young_developer Посмотреть сообщение
Unit1.cpp(17): E2344 Earlier declaration of 'SaveSettings'
А что написано в 17 строке?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2013, 16:22     Не хочет затолкнуть объект в List
Еще ссылки по теме:

C++ Затолкнуть в вектор aray
C++ Как удалить объект списка list?
Реализация std::list, сложность list::size() C++

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
27.04.2013, 16:22     Не хочет затолкнуть объект в List #12
Цитата Сообщение от young_developer Посмотреть сообщение
C++
1
#pragma once
Вы уверены что это работает адекватно в С++Builder ?

Вообще ошибки не вижу ... разве что стоит передавать строки как константную ссылку.
Yandex
Объявления
27.04.2013, 16:22     Не хочет затолкнуть объект в List
Ответ Создать тему
Опции темы

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