Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Добавлено через 11 минут
upppp
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 22:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ссылки + классы (C++):

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

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

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Зачем нужны rvalue ссылки, если есть универсальные ссылки - C++
Читаю книгу Скотта Мэйерса... Что-то я совсем запутался с этими rvalue ссылками. Я не пойму, зачем нужны rvalue ссылки, если есть...

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

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

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include <iostream> class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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