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

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

Войти
Регистрация
Восстановить пароль
 
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
#1

Ссылки + классы - C++

25.05.2012, 22:17. Просмотров 285. Ответов 5
Метки нет (Все метки)

Есть класс A. В нем перегружаю операцию
C++
1
operator&(A& obj);
Далее в этой функции происходят действия:

C++
1
A &o1 = (somebool ? this : obj)
Однако, это ошибка. А как правильно?

Добавлено через 11 минут
upppp
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 22:17     Ссылки + классы
Посмотрите здесь:

Классы и ссылки - C++
Почему такой код прокатывает

Ссылки. Указатели. Классы - C++
Здравствуйте. Пишу базу данных, и наткнулся на проблему с ссылкой. Код ниже, как ее исправить. int Base::CmpGrN(const Base a, const Base...

Классы С++ - C++
Всем доброго времени суток. Не могу понять как реализовать некие операции с объектами класса. В задании нужно сделать класс состояние...

Классы!!! - C++
Помогите преобразовать листинг, чтобы получилась нормальная работающая программа!!! По заданию нужно каким-то образом циклы оформить в...

Классы - C++
Дан класс почтовая сортировка.Нужно реализовать функции вычисления суммарного количества посылок(amount) и суммарную...

Классы С++ - C++
Стек – KStack Методы: конструкторы, деструктор; операции: >>, <<, +, +=, =, ==, != функции: IsEmpty(), ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.05.2012, 22:42     Ссылки + классы #2
оператор взятия адреса - это одно.
оператор неявного преобразования - это другое.
вот это: operator&(A& obj); - это хз что.
вы что-то не то делаете. какова конечная цель? и какой бы она ни была, лучше не использовать ни один из этих операторов.
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
25.05.2012, 22:46  [ТС]     Ссылки + классы #3
DU, я передаю одному объекту класса ссылку на другой объект класса. Потом, внутри функции, мне нужно снова создать ссылки на 1 и 2 объект.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.05.2012, 22:47     Ссылки + классы #4
C++
1
A& obj1 = (somebool ? *this : obj); //называть "о" - гореть в аду оЧеПяток
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.05.2012, 22:52     Ссылки + классы #5
сигнатура оператора кривая. похоже что вы хотели все таки оператор преобразования. но это плохой подход. что мешает сделать нормальную функцию и ее вызывать? так будет явно и понятно. в случае с операторами код получается мутный.
A& o1 = (somebool ? *this : obj);
vs
A& o1 = (somebool ? this->GetA() : obj); // this-> можно не писать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2012, 23:02     Ссылки + классы
Еще ссылки по теме:

Классы в С++ - C++
Придумайте задачу на тему "Классы в С++"

Классы - C++
Суть заключается в том : 1.Есть класс со списками igrok 2.Есть класс со списком game 3.Нужно из game перенести элемент списка в...

Классы в c++ - C++
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти...

Классы С++ - C++
Добрый вечер форумчане =) Помогите с классами. Есть такая задача: Написать класс, который будет переводить рост человека из дюймов в...


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

Или воспользуйтесь поиском по форуму:
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
25.05.2012, 23:02  [ТС]     Ссылки + классы #6
Jupiter, это только здесь для простоты такие короткие =)

проблему решил

решение:

C++
1
2
3
4
5
6
class A
{
  void create(A *self){ _self = self; }
  void func(A &object){ A &obj1 = somebool ? *_self : object; }
  A *_self;
};
Yandex
Объявления
25.05.2012, 23:02     Ссылки + классы
Ответ Создать тему
Опции темы

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