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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
#1

Конструкто копирования(вызов) - C++

10.06.2010, 06:56. Просмотров 353. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
class copyr
{
    int x;
public:
    copyr() {x=0;}
    copyr(int i) {x=i;}
    ~copyr() {}
    copyr(copyr &obj) {x = obj.x; cout << "Copy constructor" << endl;}
};
 
int main()
{
    copyr r(23),a;
    a = r;
    return 0;
 
}

как вызвать конструктор копирования, пробую a = r , не вызывается;
в книге написано a(r); тут компилятор ошибку выдает;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2010, 06:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конструкто копирования(вызов) (C++):

Неявный вызов конструктора копирования - C++
Здравствуйте, как можно неявно вызвать конструктор копирования 3 способами? Я только 1 найти смог. #include &lt;iostream&gt; class...

Вызов конструктора копирования, сохранение данных - C++
Хочу чтобы при повторном обращении к уже использовавшемуся счету прошлые изменения сохранялись Основной код : int...

Вызов конструктора для this в констукторе копирования - C++
Мое почтение, уважаемые! Подскажите, пожалуйста, как вызвать конструктор для this в констукторе копирования: template&lt;class Data&gt;...

Конструктор копирования - C++
Помогите пожалуйста разобраться, необходимо добавить конструктор копирования, теорию знаю, а как на практике применить не знаю. Программа...

Конструктор копирования - C++
Помогите пожалуйста разобраться!Правильно ли я написал конструктор копирования?Не могу понять почему не срабатывает метод show() для...

Конструктор копирования - C++
Привет Подскажите пожалуйста, как правильно сделать конструктор копирования. Заголовки: class String { public: char *Data; ...

5
rrrFer
Заблокирован
10.06.2010, 07:09 #2
C++
1
2
3
copyr *r,*a;
    r=new copyr(23);
    a=new copyr(*r);
Добавлено через 45 секунд
а еще, используй теги CODE и форматируй код нормально
0
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
10.06.2010, 07:13  [ТС] #3
конструктор копирования, как я понял появляется при присваивании a = r;
а где присваивание? или я туплю
0
rrrFer
Заблокирован
10.06.2010, 07:18 #4
цитата с википедии
Существует четыре случая вызова конструктора копирования:

Когда объект возвращает значение
Когда объект передается (функции) по значению в качестве аргумента
Когда объект конструируется на основе другого объекта (того же класса)
Когда компилятор генерирует временный объект (как в первом и втором случаях выше; как явное преобразование и т.д.)
загляни на википедию ктстати
0
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
10.06.2010, 07:25  [ТС] #5
вот еще у конструктора коприрования есть дестркутор?
и как вызвать его с помощью этого метода a(r)
0
rrrFer
Заблокирован
10.06.2010, 07:33 #6
C++
1
copyr r(23),a=r;
почитай тут еще.
там есть пример:
C++
1
2
3
4
5
6
class cl{. . . }; 
     void f(){ 
     cl obj1; cl obj2 = obj1; // Используется конструктор копирования. 
     cl obj3; 
     obj3 = obj1; // Присваивание! 
     }
Добавлено через 4 минуты
Цитата Сообщение от downloadpascal Посмотреть сообщение
вот еще у конструктора коприрования есть дестркутор?
не по теме: отсыпь травы
по теме
выбрось книжку по которой учишь, пользуйся гуглом и не задавай таких вопросов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2010, 07:33
Привет! Вот еще темы с ответами:

Конструктор копирования - C++
Здравствуйте! Прошло около недели после изучения c++ и до сих пор на вопрос по конструктору копирования ответа не найдено. Объясните зачем...

Конструктор копирования. - C++
struct list { m_class *data; list *Next; list *Prev; }; class Lst {

Конструктор копирования - C++
Всем привет. У меня такая проблема: есть некий класс, допустим Test: class Test { protected: int value; ...

Конструктор копирования - C++
Выводит мусорное значение в случае сохранения изменений. что не так? void Account::WithdrawMoney() { char c; Account *Jon = new...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
10.06.2010, 07:33
Ответ Создать тему
Опции темы

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