Я пытаюсь понять делегирование в С++. Я читал, что «делегирование — это указатель на функцию», видел несколько примеров, но, к сожалению, не могу понять. Я создал код, чтобы попробовать, потому что думал, что, возможно, во время программирования я его пойму. К сожалению, я этого не сделал.
#include <iostream>
using namespace std;
class person{
private:
int age;
public:
person(age){
this->age = age;
}
// virtual void changeAge(int arg) = 0;
};
class addNumber {
public:
int changeAge(int arg) {
arg += arg+1;
}
};
int main(){
person Olaf;
}
Итак, основываясь на этом источнике, я попробовал:
Olaf = &addNumber::changeAge(10);
or
addNumber test;
Olaf = &addNumber::changeAge(10);
Оба не работают. Это означает, что программа не компилируется. Я хочу, чтобы объект person использовал метод класса changeName
of addNumber
для изменения возраста экземпляра класса person.
changeAge
должен быть либо статическим, либо вам нужно создать экземпляр addNumber. - person Jake Freeman   schedule 18.12.2017Olaf = &addNumber::changeAge(10);
.Olaf
- этоperson
, в то время как rhs, скорее всего, должен быть указателем на функцию (это не так). Как это задание должно работать? - person 463035818_is_not_a_number   schedule 18.12.2017person
. Это не имеет ничего общего с указателями на функции или делегаты. Сначала вам следует ознакомиться с синтаксисом C++. - person user7860670   schedule 18.12.2017changeAge
классаaddNumber
. Я не хочу использовать наследование, потому что хочу научиться делегированию. - person Ubunnn   schedule 18.12.2017