Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 314

Нужно объект типа класс проинициализировать с помощью перегруженного конструктора Class::Class( bool a )

16.12.2011, 22:18. Показов 2207. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Плиз помогите. Не знал, что я такой чайник.)

Итак:
есть два класса:

CMyClass.h
CMyClass.cpp

и

CMyClassDlg.h
CMyClassDlg.cpp

я перегружаю конструктор класса Class
C++
1
2
3
4
5
6
CMyClass::CMyClass()
{}
CMyClass::CMyClass( bool a )
{
if( a ) ... 
}
в классе ClassDlg я объявляю объект типа класс и хочу его проинициализировать с помощью перегруженного конструктора Class::Class( bool a )
как это сделать?

я делаю так:
в файле MyClassDlg.h объявляю
C++
1
MyClass class_item;
в файле MyClassDlg.cpp пишу:
C++
1
class_item = CMyClass(TRUE);
он пишет:
error C2582: ''operator ='' function is unavailable in ''CMyClass''


чего он ругается?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2011, 22:18
Ответы с готовыми решениями:

Работа с class ами. Заполнение дин. массива типа class
Всем доброго времени суток! Это моя первая тема на этом сайте, поэтому если что извините меня (за неточности итд итп). Мне нужно...

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

Нужно обратиться к class CustomAdapter из static метода class HomeFragment
По нажатию на кнопку на экране выполняется следующий код: private BottomNavigationView.OnNavigationItemSelectedListener...

5
Dinosauro
17.12.2011, 20:43
Если память под объект выделяется в стеке объект нужно инициализировать при определении (определение MyClass class_item; инициализируется конструктором по умолчанию - без параметров), если нужно вызвать прегруженный конструктор нужно написать:
CMyClass class_item(TRUE);
При этом объект будет автоматически освобожден при выходе из области видимости class_item.

Можно создавать также объекты динамически(выделять память в куче):
CMyClass* class_item = new CMyClass(TRUE);
Но при этом память надо освобождать, когда объект не нужен, вызовом:
delete class_item;
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
18.12.2011, 18:53
по-моему там все просто.

MyClassDlg.h
C++
1
2
3
4
5
6
7
8
9
10
class CMyClassDlg
{
public:
    CMyClassDlg();
    ...
 
public:
    CMyClass m_A;
    CMyClass m_B;
}
MyClassDlg.cpp
C++
1
2
3
4
5
CMyClassDlg::CMyClassDlg():
    m_A(TRUE),
    m_B(FALSE)
{
}
В синтаксисе не совсем уверен, когда придут домой - гляну и уточню.

C уважением,
Владимир
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
18.12.2011, 23:21
Так и есть, приведенный выше синтаксис верный (помню ведь еще чего-то ).

При использовании указателей обычно инициализация указателей (создание экземпляров классов) проводится в теле конструктора, а их удаление в деструкторе. Например,

-= MyClassDlg.h =-
C++
1
2
3
4
5
6
7
8
9
10
11
class CMyClassDlg
{
public:
    CMyClassDlg();
    ~CMyClassDlg();
    ...
 
public:
    CMyClass* m_pA;
    CMyClass* m_pB;
}
-= MyClassDlg.cpp =-
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
CMyClassDlg::CMyClassDlg()
{
    m_pA = new CMyClass(TRUE);
    m_pB = new CMyClass(FALSE);
}
 
CMyClassDlg::~CMyClassDlg()
{
    if (!m_pA)
        delete m_pA;
    if (!m_pB)
        delete m_pB;
}
Удачи,
Владимир
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
18.12.2011, 23:23
ой!
C++
1
2
3
4
5
6
7
CMyClassDlg::~CMyClassDlg()
{
    if (m_pA)
        delete m_pA;
    if (m_pB)
        delete m_pB;
}
а еще лучше
C++
1
2
3
4
5
6
7
CMyClassDlg::~CMyClassDlg()
{
    if (m_pA != NULL)
        delete m_pA;
    if (m_pB != NULL)
        delete m_pB;
}
0
comm
16.01.2012, 22:24
C++
1
2
3
4
5
6
7
8
9
10
11
class A {
  A( bool sign) {
   ...
  } 
}
class B {
  A m_a;
  B() : m_a( true ) {
   ....
  }
}
инициализация агрегированных данных в конструкторе делается также как и вызов конструктора базового класса, все данные должны инициализироваться в том же порядке как и объявлялись
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2012, 22:24
Помогаю со студенческими работами здесь

bad class file: C:Program FilesJavajre1.5.0_02lib t.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0
написал тестовый td_jsp.jsp фаил -&gt;&gt; &lt;html&gt; &lt;head&gt;&lt;title&gt;JSP test&lt;/title&gt;&lt;/head&gt; &lt;body&gt; &lt;p&gt;JSP test&lt;/p&gt; &lt;/body&gt; ...

Используйте объект orange типа Tfruit для инициализации объекта grapefruit с помощью конструктора копирования
Есть класс с именем Tfruit и объект orange типа Tfruit. Используйте orange для инициализации нового объекта на имя grapefruit с помощью...

Обяснение конструктора class HugeInteger
#include &lt;iostream.h&gt; #include &lt;string.h&gt; class HugeInt{ friend ostream &amp;operator&lt;&lt; (ostream &amp;, const HugeInt &amp;); // friend...

Нужно составить регулярное выражение для поиска <div class="market_row_name"> и <div class="market_row_price">
Заранее спасибо!

Непонятная ошибка: Exception class EClassNotFound with message 'Class TLabeledEdit not found'
Когда написал среду в Делфи для БД Access то при запуске выдает такую ошибку. project Project.exe raised exception class...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru