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

Перегрузка оператора = для указателей - C++

Восстановить пароль Регистрация
 
QGuest
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
07.07.2014, 19:51     Перегрузка оператора = для указателей #1
Существует ли возможность предопределить оператор = для такого случая?

C++
1
2
Object* first = new Object();
Object second = first; // Вот тут =
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.07.2014, 19:58     Перегрузка оператора = для указателей #2
C++
1
Object second = *first;
QGuest
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
07.07.2014, 20:05  [ТС]     Перегрузка оператора = для указателей #3
MrCold, я ошибся немного. Имел в виду вот это:
C++
1
2
Object* first = new Object();
Object* second = first; // Вот тут =
И чтоб в этом месте выполнялся метод вроде этого:
C++
1
2
3
4
5
6
class Object {
   Object* operator=(Object* other) {
      //некоторый код
      return other;
   }
};
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
07.07.2014, 20:17     Перегрузка оператора = для указателей #4
Цитата Сообщение от QGuest Посмотреть сообщение
Object* second = first;
ну
у тебя два указателя указывать будут на один объект
а ты хочешь создать другой объект?
а зачем?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
07.07.2014, 20:23     Перегрузка оператора = для указателей #5
Цитата Сообщение от QGuest Посмотреть сообщение
Существует ли возможность предопределить оператор = для такого случая?
Можно создать свой класс указателей.
QGuest
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
07.07.2014, 20:27  [ТС]     Перегрузка оператора = для указателей #6
ValeryS, я не хочу создать новый объект. Мне нужно посчитать количество указателей на объект.

Добавлено через 47 секунд
Цитата Сообщение от Dani Посмотреть сообщение
Можно создать свой класс указателей.
можно небольшой пример?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
07.07.2014, 20:32     Перегрузка оператора = для указателей #7
Цитата Сообщение от QGuest Посмотреть сообщение
Мне нужно посчитать количество указателей на объект.
однако странный способ
Цитата Сообщение от QGuest Посмотреть сообщение
Object* second = first;
а зачем тебе знать количество?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2014, 20:34     Перегрузка оператора = для указателей
Еще ссылки по теме:

Перегрузка оператора ( ) для объектов класса C++
C++ Перегрузка оператора + для стека
Перегрузка оператора для последовательных действий C++

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

Или воспользуйтесь поиском по форуму:
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
07.07.2014, 20:34     Перегрузка оператора = для указателей #8
QGuest, что-то вроде этого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
 
struct MyClass
{
};
 
struct MyClassPtr
{
    MyClassPtr(MyClass) { std::cout << "Constructor\n"; }
    MyClassPtr(MyClassPtr&) { std::cout << "Copy constructor\n"; }
    MyClassPtr& operator=(MyClassPtr&) { std::cout << "operator=\n"; return *this;}
};
 
 
int main()
{
    MyClass x, y;
    MyClassPtr a(x);
    MyClassPtr b(a);
    MyClassPtr c(x);
    c = b;
 
    return 0;
}
Где стоят cout можно заменить на нужный код.
Yandex
Объявления
07.07.2014, 20:34     Перегрузка оператора = для указателей
Ответ Создать тему
Опции темы

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