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

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

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

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

07.07.2014, 19:51. Просмотров 297. Ответов 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     Перегрузка оператора = для указателей
Посмотрите здесь:

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

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

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

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

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

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

Перегрузка оператора- для шаблона класса - C++
Ребят подскажите что не так я делаю или подтолкните в нужное русло =\ З.Ы. Массивы будем рассматривать одинаковой длины. #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
852 / 750 / 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
Модератор
6541 / 5007 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
07.07.2014, 20:17     Перегрузка оператора = для указателей #4
Цитата Сообщение от QGuest Посмотреть сообщение
Object* second = first;
ну
у тебя два указателя указывать будут на один объект
а ты хочешь создать другой объект?
а зачем?
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 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
Модератор
6541 / 5007 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
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     Перегрузка оператора = для указателей
Еще ссылки по теме:

Перегрузка оператора *= для vector<int> - C++
#include &lt;iostream&gt; #include &lt;vector&gt; const long long base = 1000*1000*1000; std::vector&lt;int&gt; &amp;operator *= (std::vector&lt;int&gt; &amp;a,...

Перегрузка оператора ( ) для объектов класса - C++
Здравствуйте! перегрузили оператор (). Каким образом компилятор поймет где мы вызываем оператор (), а где , например, конструктор? каким...

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

Перегрузка оператора сравнения для строк - C++
В общем мне нужно сделать такую перегрузку, что бы вместо символа, например, &quot;&lt;&quot; выполнялось сравнение через strcmp, например строка...

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


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

Или воспользуйтесь поиском по форуму:
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 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     Перегрузка оператора = для указателей
Ответ Создать тему
Опции темы

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