Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142

Объявление TStringList внутри класса

17.01.2013, 15:06. Показов 2797. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Имеется класс FiltStream.cpp и файл заголовка FileStream.h. В файле заголовка хочу объявить переменную типа TStringList, но почему-то не получается - компилятор ругается, что нельзя создать член класса здесь. Как быть?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*FileStream.cpp*/
//---------------------------------------------------------------------------
 
 
#pragma hdrstop
 
#include "FileStream.h"
#include <iostream>
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma package(smart_init)
 
int FileStream::getFileStream ()
{
    return list;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*FileStream.h*/
//---------------------------------------------------------------------------
 
#ifndef FileStreamH
#define FileStreamH
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
#endif
class FileStream
{   public:
    TStringList* list = new TStringList(); //Вот здесь выдает ошибку E2233 Cannot initialize a class member here
    getFileStream();
};
Заранее благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.01.2013, 15:06
Ответы с готовыми решениями:

Сортировка объекта класса TStringList
Здравствуйте! Ребята, подскажите, по такому вопросу. У меня есть текст который занесен в объекта класса TStringList(). Так вот мне из этого...

Использовать private члены класса внутри static ф-ий этого же класса.
Все привет! Такая вот проблема. Есть класс (естественно тестовый, для пример): class SCRIPT{ private: SCRIPT(); ...

Объявление локального класса
Доброе время суток. Пишу программу в визуальной среде. Компилятор выдает ошибки, которые я не понимаю как исправить( ...

9
98 / 34 / 10
Регистрация: 24.04.2012
Сообщений: 151
17.01.2013, 15:20
нельзя присваивать значение данным класса в его определении, это можно сделать или в конструкторе, или с помощью другого метода класса
0
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
17.01.2013, 15:25  [ТС]
Цитата Сообщение от Alexxx7 Посмотреть сообщение
нельзя присваивать значение данным класса в его определении, это можно сделать или в конструкторе, или с помощью другого метода класса
Спасибо, но не могли бы объяснить наглядней? Как исправить мой код, чтобы все заработало?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
17.01.2013, 15:31
C++
1
2
3
4
5
6
7
class FileStream
{   public:
    TStringList* list;
    FileStream()  // Конструктор
     { list = new TStringList();  }
    getFileStream();
};
И #endif поставь в конец
0
98 / 34 / 10
Регистрация: 24.04.2012
Сообщений: 151
17.01.2013, 15:41
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*FileStream.cpp*/
//---------------------------------------------------------------------------
 
 
#pragma hdrstop
 
#include "FileStream.h"
#include <iostream>
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma package(smart_init)
 FileStream::FileStream ()// конструктор 
{
  list = new TStringList(); ;
}
int FileStream::getFileStream ()
{
    return list;
}
а в хедере так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*FileStream.h*/
//---------------------------------------------------------------------------
 
#ifndef FileStreamH
#define FileStreamH
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
#endif
class FileStream
{   public:
    TStringList* list;
    getFileStream();
};
0
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
17.01.2013, 15:42  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
C++
1
2
3
4
5
6
7
class FileStream
{   public:
    TStringList* list;
    FileStream()  // Конструктор
     { list = new TStringList();  }
    getFileStream();
};
И #endif поставь в конец
ругается на 3 строчку: E2303 Type name expected
0
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
17.01.2013, 15:53
а где определение TStringList ?
0
98 / 34 / 10
Регистрация: 24.04.2012
Сообщений: 151
17.01.2013, 15:54
ой в хэдере так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*FileStream.h*/
//---------------------------------------------------------------------------
 
#ifndef FileStreamH
#define FileStreamH
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
#endif
class FileStream
{   public:
    TStringList* list;
    FileStream();// объявляем конструктор
    getFileStream();
};
и подумайте про деструктор, там если надо, удалить необходимо то на что указывает указатель.
1
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
17.01.2013, 15:57
не вижу #define который мог бы содержать TStringList

Добавлено через 1 минуту
в <iostream> такого класса вроде нет
1
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
18.01.2013, 01:13  [ТС]
Цитата Сообщение от UserAK Посмотреть сообщение
не вижу #define который мог бы содержать TStringList
исправил, добавил #include <vcl.h>
Alexxx7, сделал как у Вас, пишет в FileStream.cpp на 18 строчке что getFileStream () не является member of 'FileStream'. Что делать?

Добавлено через 2 часа 16 минут
Все, разобрался... =) Всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2013, 01:13
Помогаю со студенческими работами здесь

Передача значения класса в функцию внутри класса
Всем привет. Вот столкнулся с таким вопросом Как передать значение класса в функцию внутри класса? вопрос не понятный попробую обьяснить...

E2034 Cannot convert 'TStringList' to 'TStringList *'
Всем привет! Пытаюсь сделать так чтобы можно было выбрать неограниченное количество файлов, но почему то ругается... TStringList **Ffile;...

Объявление объекта класса VCL
Всем здравствуйте. Хочу внутри функции динамически создавать (и уничтожать) объект TImage TImage *img; ...

Объявление дружественного класса внутри класса
class A{ friend class B{ B(A &amp;a); } } Подскажите пожалуйста, такое возможно или нет, я хотел чтобы...

Ругань на объявление массива внутри класса
Задание: создать класс-контейнер, реализующий политику FIFO. Имею код: CQueue.h #ifndef __CQUEUE_H__ #define __CQUEUE_H__ ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru