Предположим, у нас есть класс A
, который имеет способ void foo()
. Я знаю, что могу получить указатель на foo()
, используя &A::foo
, но этот указатель, похоже, полагается только на тип класса, а не на экземпляр объекта. Если у нас есть два объекта a1
и a2
типа A
, как мы можем сделать разницу между foo()
методом a1
и номером a2
с использованием указателей, указателей функций-членов или даже адресов указателей? В принципе, я хочу получить указатель, который ссылается на метод void foo()
внутри объекта a1
, который будет отличаться от указателя, который ссылается на метод внутри a2
. Спасибо.Сравнить функции функции указатели функций
-1
A
ответ
0
Я не думаю, что вы можете сделать их разными. a1-> foo() и a2-> foo() в основном одинаковы.
0
Я думаю, вы здесь не поняли концепцию объекта (или экземпляр класса). Объект похож на план класса. У вас не может быть разных функций-членов/членов для каждого объекта.
например.
class A
{
int result;
public:
void add(int x, int y)
{
this->result = x + y;
}
}
Все объекты класса А будут иметь переменную-член и результат функции add()
члена в нем. Таким образом, obj1->add()
и obj2->add()
вызовет ту же функцию add()
, даже если сами объекты будут иметь разные атрибуты друг от друга.
obj1->add(1,2)
привело бы к obj1->result
быть , тогда как
obj2->add(1,3)
привело бы к obj2->result
быть .
Смежные вопросы
- 1. Указатели на функции/Таблицы функций
- 2. указатели на функции в шаблонных функций
- 3. указатели на функции функций и наследование
- 4. Указатели функций и переопределенные функции в C++
- 5. Указатели на функции С CUDA функций устройства
- 6. повышающие функции функции указатели
- 7. Указатели функции NULL
- 8. Указатели на функции утилиты
- 9. указатели функции const
- 10. C указатели функции
- 11. Функции и указатели C++
- 12. Функции и указатели на функции в C++
- 13. Как Qt идентифицирует указатели на функции функции?
- 14. указатели на функции
- 15. Указатели на указатели, передаваемые в функции
- 16. указатели на функции в C++
- 17. Функциональный прототип функции, содержащей указатели
- 18. Указатели внутри классов методы/функции
- 19. указатели на функции и необходимость
- 20. Массивы и указатели функций
- 21. указатели на функции между классами
- 22. указатели, переданные в функции
- 23. Указатели как аргументы функции
- 24. C указатели в функции
- 25. какие указатели на функции
- 26. Функции и указатели
- 27. Cuda указатели на функции
- 28. Указатели на функции
- 29. C указатели на функции
- 30. Указатели, массивы и функции
Почему два экземпляра класса имеют разные функции-члены? –
Похоже, вы можете искать функцию + привязку, но трудно сказать наверняка без лишних подробностей в вашем вопросе. –
Собственно, они этого не делают. Оба имеют одну и ту же функцию-член 'void foo()', так что мы можем делать 'a1-> foo()' и 'a2-> foo()'. – baboulinet