274 / 63 / 4
Регистрация: 18.04.2011
Сообщений: 1,362
Записей в блоге: 1
1

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

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

Студворк — интернет-сервис помощи студентам
Почему нельзя в классе сразу после объявления переменной прировнять её к определенному значению? Нампример: AnsiString DirectorySt="";
И как это обойти, что при запуске программы для всех компонентов в форме, переменная DirectorySt была изначально ровна к “ ”, пока мы её не изменим.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2011, 11:55
Ответы с готовыми решениями:

Чем отличаються поля от переменных(в классах)?
Чем отличаються поля от простых переменных?

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

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

Приравнивание/Сравнение переменных типа char
Вообщем, есть такой вопрос, мне нужно приравнять в условии одну переменную типа char к какому...

4
2021 / 1620 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
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
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
12.05.2011, 14:19 3
magals, приравнивать нельзя потому, что сам класс - всего лишь описание типа, и пока вы не создадите хотя бы один объект класса, поля этого класса в памяти просто не существуют (за исключением статических полей). Хотя в новом стандарте собираются ввести подобный способ инициализации. А пока это нужно делать в списке инициализации конструктора, как и сказал rangerx.
0
274 / 63 / 4
Регистрация: 18.04.2011
Сообщений: 1,362
Записей в блоге: 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
2021 / 1620 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2011, 00:09
Помогаю со студенческими работами здесь

Использование переменных в других классах
public class povremennaya : Form1 { public double stavka1; ...

Видимость переменных в наследуемых классах
Привет. Только начинаю изучать ООП. Public MustInherit Class MIClass Private i() As Integer ...

Получение значений переменных в классах
Столкнулся с таким вопросом. Функция adobj в классе Add обращается к внешней функции zap, передавая...

Не могу разобраться с видимостью переменных в классах
Тут проблема в переменной $HP. Почему-то она работает не правильно и NetBeans выдаёт, что она не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru