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

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

Восстановить пароль Регистрация
 
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
10.06.2010, 06:56     Конструкто копирования(вызов) #1
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); тут компилятор ошибку выдает;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2010, 06:56     Конструкто копирования(вызов)
Посмотрите здесь:

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

Когда объект возвращает значение
Когда объект передается (функции) по значению в качестве аргумента
Когда объект конструируется на основе другого объекта (того же класса)
Когда компилятор генерирует временный объект (как в первом и втором случаях выше; как явное преобразование и т.д.)
загляни на википедию ктстати
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
10.06.2010, 07:25  [ТС]     Конструкто копирования(вызов) #5
вот еще у конструктора коприрования есть дестркутор?
и как вызвать его с помощью этого метода a(r)
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 Посмотреть сообщение
вот еще у конструктора коприрования есть дестркутор?
не по теме: отсыпь травы
по теме
выбрось книжку по которой учишь, пользуйся гуглом и не задавай таких вопросов
Yandex
Объявления
10.06.2010, 07:33     Конструкто копирования(вызов)
Ответ Создать тему
Опции темы

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