【发布时间】:2017-12-18 13:09:21
【问题描述】:
我正在尝试理解 C++ 中的委托。我读到“委托是指向函数的指针”,我看到了几个例子,但不幸的是我无法理解。我创建了代码来尝试,因为我认为也许在编程时我会理解它。可惜我没有。
#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;
}
所以基于这个source我试过了:
Olaf = &addNumber::changeAge(10);
或
addNumber test;
Olaf = &addNumber::changeAge(10);
两者都不起作用。这意味着程序没有编译。
我想让 person 对象使用 changeName 的 addNumber 类方法来更改实例 person 类的年龄。
【问题讨论】:
-
"...我读到“委托是指向函数的指针”..." - 你在哪里读到的?
-
你的问题是什么?
-
请定义“两者都不起作用。”
-
完全不清楚
Olaf = &addNumber::changeAge(10);应该做什么。Olaf是person而 rhs 很可能应该是函数指针(它不是)。该任务应该如何进行? -
您正在尝试将函数调用返回的值的地址分配给不相关类型
person的对象。这与指向函数或委托的指针无关。你应该先熟悉C++ syntax。
标签: c++ delegation