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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
magals
274 / 63 / 3
Регистрация: 18.04.2011
Сообщений: 1,355
Записей в блоге: 1
#1

Приравнивание переменных в классах. - C++

12.05.2011, 11:55. Просмотров 1113. Ответов 4
Метки нет (Все метки)

Почему нельзя в классе сразу после объявления переменной прировнять её к определенному значению? Нампример: AnsiString DirectorySt="";
И как это обойти, что при запуске программы для всех компонентов в форме, переменная DirectorySt была изначально ровна к “ ”, пока мы её не изменим.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 11:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приравнивание переменных в классах. (C++):

Ограничения в классах C++ - C++
Ребят всем привет! В общем пишу курсовую работу на данную тему (ограничения в классах) и сейчас нахожусь в небольшом недоумении, читаю...

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

Конструктор по умолчанию в delphistyle классах - C++ Builder
Здравствуйте! Пусть есть такой простой код: template< typename T > class __declspec(delphiclass) TIterator { public: ...

Данные о классах в разных формах - C++ Builder
Здравствуйте, скажите,пожалуйста, можно ли сделать так, чтобы класс ,созданный с определенным именем в одной форме, был доступен и в другой?

Исходники программ на билдере, написанные в классах - C++ Builder
Нужны любые исходники программ на билдере написанные в классах. Покидайте пожалуйста:)

Использование компонентов формы в своих классах - C++ Builder
Написал класс class myclass { public: void SetText(AnsiString text); }; void myclass::SetText(AnsiString text) {

4
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
12.05.2011, 13:53 #2
Все члены класса можно инициализировать в списке инициализации конструктора этого класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// *.h
class SomeClass
{
    private:
        AnsiString DirectorySt;
    public:
        SomeClass();
};
 
...
 
// *.cpp
SomeClass::SomeClass()
    : DirectorySt("")
{
}
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
12.05.2011, 14:19 #3
magals, приравнивать нельзя потому, что сам класс - всего лишь описание типа, и пока вы не создадите хотя бы один объект класса, поля этого класса в памяти просто не существуют (за исключением статических полей). Хотя в новом стандарте собираются ввести подобный способ инициализации. А пока это нужно делать в списке инициализации конструктора, как и сказал rangerx.
0
magals
274 / 63 / 3
Регистрация: 18.04.2011
Сообщений: 1,355
Записей в блоге: 1
12.05.2011, 22:55  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class TForm1 : public TForm
{
__published:    // IDE-managed Components
 
private:    // User declarations
AnsiString DirectorySt;
public:     // User declarations
 
          TForm1();
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//.h
C++
1
2
3
4
5
6
7
8
9
10
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
TForm1::TForm1(): DirectorySt("")
{
}

пишет при попытке скомпилировать : [C++ Error] Unit1.cpp(18): E2251 Cannot find default constructor to initialize base class 'TForm'

хотя вроде сделал всё как надо.
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
13.05.2011, 00:09 #5
C++
1
2
3
4
5
6
7
8
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner),
          DirectorySt("")
{
}
//---------------------------------------------------------------------------
0
13.05.2011, 00:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 00:09
Привет! Вот еще темы с ответами:

__property, __declspec, __fastcall, PASCALIMPLEMENTATION(в классах исползуется) DELPHICLASS(ето тоже), __classmethod (выдал в функциях), __classid, __ - C++ Builder
обясните пожалуйста етих вешей, что такое __property, __declspec, __fastcall, PASCALIMPLEMENTATION(в классах исползуется) DELPHICLASS(ето...

Реализация в классах перегрузки операторов "Матрица" - C++ Builder
Помогите с кодом! Необходимо разработать программу, которая реализует выполнение действий над матрицами, в которой для хранения...

Приравнивание переменных - MathCAD
Доброго времени суток! Столкнулся с такой проблемой: как приравнять переменные, чтобы моя изначальная функция преобразовалась в более...

Приравнивание/Сравнение переменных типа char - C (СИ)
Вообщем, есть такой вопрос, мне нужно приравнять в условии одну переменную типа char к какому нибудь тексту, или другой переменной. Я знаю...


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

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

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