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

В конструктор класса передать объект этого класса - C++

Восстановить пароль Регистрация
 
nazavrik
 Аватар для nazavrik
22 / 22 / 2
Регистрация: 17.09.2008
Сообщений: 130
14.02.2010, 00:39     В конструктор класса передать объект этого класса #1
Вопрос на засыпку

Как в конструктор класса передать объект этого класса? Т.е.
C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
public:
        A(const char* s){}
        ...
private:
        string str;
};
 
A a1("test");
A a2(a1); //для этого случая нужно предусмотреть конструктор
Добавлено через 18 минут
Вопрос решен. Необходимо объявить конструктор:
C++
1
2
3
4
5
6
7
8
9
class A
{
public:
        A(const char* s){}
        A(A &s){} // <---
        ...
private:
        string str;
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2010, 00:39     В конструктор класса передать объект этого класса
Посмотрите здесь:

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО! C++
C++ Индексация массива класса, через объект этого класса
Конструктор класса не видит конструктор по умолчанию другого класса C++
Создание статической функции класса, которая принимает экземпляр этого же класса как объект C++
C++ Создать объект внутри класса, который может вызывать функцию этого класса
Как передавать значения строкового типа в конструктор через объект класса? C++
C++ Статический указатель класса на объект этого же класса
C++ Передать argc, argv в конструктор класса
Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект C++
Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? C++
Как передавать объект класса в методе main, чтобы конструктор не вызывался 2 раза? C++
C++ не удается передать объект из одного класса в другой посредством return

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3630 / 908 / 48
Регистрация: 10.01.2010
Сообщений: 2,445
14.02.2010, 01:16     В конструктор класса передать объект этого класса #2
да, это вроде даже не простой констуктор, а конструктор копирования
C++
1
A ObjA = ObjC; // вызов A(A &s)
кстати напишите лучше A(const A &s)... по логике вы же считываете делая копию с того с чего конструируете, поэтому этот объект изменять не надо. пусть будет const

И не забудьте написать operator=(const A &s), а то я сегодня из за этого пол дня дебажил >_< копировалось по стандартному и 2 объекта моего класса указывали на одни и те же данные которые потом освобождались в 1 а во втором уже была попытка повторного освобождения. при этом я был полностью что operator= написан и искал ошибку в другом ну как всегда в общем
Yandex
Объявления
14.02.2010, 01:16     В конструктор класса передать объект этого класса
Ответ Создать тему
Опции темы

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