Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
nazavrik
22 / 22 / 5
Регистрация: 17.09.2008
Сообщений: 130
#1

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

14.02.2010, 00:39. Просмотров 1110. Ответов 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;
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2010, 00:39
Ответы с готовыми решениями:

Создать объект внутри класса, который может вызывать функцию этого класса
Ребята помогите уже несколько дней мучаюсь. Хочу сделать программу в консоле...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект
Привет. Есть такой код class Model { public: Model(); Model(int...

Индексация массива класса, через объект этого класса
class A{ char c;//? - размер массива public: A(int C){c;} }; int...

Статический указатель класса на объект этого же класса
Не пойму: что в этом коде не так? #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра?
header.h template &lt;class T&gt; class MyVector { public: void...

1
insideone
Модератор
Автор FAQ
3658 / 938 / 112
Регистрация: 10.01.2010
Сообщений: 2,523
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= написан и искал ошибку в другом ну как всегда в общем
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2010, 01:16

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО!
Друзья! Почему так? #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace...

Передать argc, argv в конструктор класса
Добрый день! Решил я отказаться от getopt и написать разбор аргументов сам....

Конструктор класса не видит конструктор по умолчанию другого класса
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса...


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

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

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