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

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

Войти
Регистрация
Восстановить пароль
 
QGuest
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
#1

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

07.07.2014, 19:51. Просмотров 306. Ответов 7
Метки нет (Все метки)

Существует ли возможность предопределить оператор = для такого случая?

C++
1
2
Object* first = new Object();
Object second = first; // Вот тут =
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2014, 19:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка оператора = для указателей (C++):

Перегрузка оператора + для стека - C++
Добрый день. Прошу помощи с перегрузкой этой операции. Цель: перегрузить + так,чтобы он складывал элементы двух стеков в третий.Вроде...

Перегрузка оператора == для string - C++
#include <iostream> #include <conio.h> #include <fstream> #include <string> #include <stdlib.h> using namespace std; class...

Перегрузка оператора + для структуры - C++
У нас есть две строки S1, S2 .После выполнения S3 = S1 + S2 : 1)в S3 должны быть символы входящие в S1 и в S2 одновременно. 2)Посчитать...

Перегрузка оператора * и / для строки - C++
Есть класс MyString нужно написать перезагрузку Операция *: должна вернуть новую строку, которая возникнет путем пересечения двух строк,...

Перегрузка оператора для класса - C++
Здравствуйте! Подскажите, пожалуйста, почему так не работает: class ClassA { public: ClassA() { m = 1; ...

Перегрузка оператора << для шаблона - C++
У меня есть структура студенты, а класс-шаблон массив элементов. Как сделать оператор универсальным, подходящим для любых типов(и для...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrCold
854 / 752 / 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
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
07.07.2014, 20:17 #4
Цитата Сообщение от QGuest Посмотреть сообщение
Object* second = first;
ну
у тебя два указателя указывать будут на один объект
а ты хочешь создать другой объект?
а зачем?
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 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
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
07.07.2014, 20:32 #7
Цитата Сообщение от QGuest Посмотреть сообщение
Мне нужно посчитать количество указателей на объект.
однако странный способ
Цитата Сообщение от QGuest Посмотреть сообщение
Object* second = first;
а зачем тебе знать количество?
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 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 можно заменить на нужный код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2014, 20:34
Привет! Вот еще темы с ответами:

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

Глобальная перегрузка оператора << для cout - C++
Как можно глобально перезагрузить этот оператор для cout ? + его перезагрузка должна зависить от аргументов Command Line. int...

Перегрузка оператора == для двух векторов - C++
помогите написать перегрузку оператора == для 2 векторов.

Перегрузка оператора для последовательных действий - C++
Можно как нибудь перегрузить оператор, что бы можно было выполнить, например: Matrix a, b, c, d; d = a * b * c; У меня пока...


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

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

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