我习惯在我的代码中使用Objective-C协议;他们对很多事情都很不可思议。但是,在C ++中,我不确定如何完成同样的事情。这是一个例子:
在Obj-C中这很简单,但我无法弄清楚如何在C ++中实现它。它甚至可能吗?
答案 0 :(得分:22)
基本上,代替“协议”认为“具有纯虚函数的基类”,有时称为其他语言的接口。
class Protocol
{
public:
virtual void Foo() = 0;
};
class Class : public Protocol
{
public:
void Foo() { }
};
class Class2 : public Protocol
{
public:
void Foo() { }
};
class TableView
{
public:
void setDelegate(Protocol* proto) { }
};