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

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

Войти
Регистрация
Восстановить пароль
 
KobaEugeneA
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 166
#1

Как передать в метод класса ссылку на экземпляр - C++

13.04.2014, 16:12. Просмотров 455. Ответов 4
Метки нет (Все метки)

Есть класс
C++
1
class Class{ ... }
Как передать в метод экземплер класса из которого вызывается этот метод? Пробывал так:
C++
1
2
3
4
5
6
7
class Class{
   ...
   method(Class a = this){
      ...
   }
...
}
но g++ выдаёт ошибку: error: ‘this’ may not be used in this context. Как всё же можно это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 16:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как передать в метод класса ссылку на экземпляр (C++):

Как передать в метод класса Menu указатель на метод дочернего класса? - C++
Как передать в метод базового класса указатель на метод дочернего: class Menu() { protected: setCallback(*********); //...

Может ли метод класса возвращать экземпляр этого же класса? - C++
такой вопрос, реально что бы функция класса имела тип класса(возвращала класс), то есть типа так: class c1{ c1 f1(); } если да, то...

Можно ли получить ссылку на экземпляр класса по полю этого экземпляра - C++
схематично код такой - class A { static void staticMethodA(SomeClass* memberA); SomeClass* memberA; } void...

Компилятор требует конструктор, принимающий аргументом экземпляр того же класса (не ссылку) - C++
Доброго времени суток. Проблема такова: имеется ряд нижеприведённых классов (для простоты всё, что навскидку не касается данной...

Как сделать указатель/ссылку на метод конкретного экземпляра класса - C++
Добрый день. Подскажите можно ли в c++ каким либо образом объявить указатель/ссылку на функцию конкретного экземпляра класса и вызвать ее...

Передать метод класса как параметр - C++
Есть класс A, у него есть метод B, как метод B подсунуть в конструктор std::thread? Что-то типа такого class A { void B{ ... } ...

4
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,879
Записей в блоге: 3
Завершенные тесты: 1
13.04.2014, 16:15 #2
Эммммм, а зачем это нужно, если и так передается указатель?

Добавлено через 58 секунд
C++
1
2
3
   method(){
      Class & thisRef = *this ;
   }
0
KobaEugeneA
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 166
14.04.2014, 09:17  [ТС] #3
Там рекрусивный метод. Надо чтобы по умолчанию при первом вызове передавлся именно так, иначе если я буду внутри метода вызывать, то он при каждом вызове будет приравниваться this, а мне этого не надо.
Ещё хотел поинтересоваться, что означает & перед thisRef? Разве это не оператор взятия ссылки?
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
14.04.2014, 09:19 #4
Цитата Сообщение от KobaEugeneA Посмотреть сообщение
Разве это не оператор взятия ссылки?
такой есть?)
это инициализация переменной типа ссылка на Class с именем thisRef значением *this
0
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
14.04.2014, 16:47 #5
Цитата Сообщение от KobaEugeneA Посмотреть сообщение
Там рекрусивный метод. Надо чтобы по умолчанию при первом вызове передавлся именно так, иначе если я буду внутри метода вызывать, то он при каждом вызове будет приравниваться this, а мне этого не надо.
Что-то это вообще не объясняет цели.
0
14.04.2014, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2014, 16:47
Привет! Вот еще темы с ответами:

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? - C++
header.h template <class T> class MyVector { public: void swap(MyVector<T>Vector); } template <class T> void...

Как передать функции через метод класса - C++
Добрый вечер всем! Столкнулся с проблемкой К примеру у меня есть 3 функции.Я хочу в 4 функцию дать массив названий этих 3...

Как передать указатель на функцию через метод класса ? - C++
typedef void (*FuncCallback)(float* flValue); Пробовал по всякому и ни как: Class.CallFunc // error C3867: CClass::CallFunc :...

Как передать метод класса в качестве параметра функции - C++
Это типа "бот", он работает ("шагает" по заданному полю) #include "stdafx.h" #include <iostream> #include <time.h> #include...


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

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

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