C++ C++;问题:与Obj-C协议类似的功能?
我习惯于在代码中使用Objective-C协议;它们在很多方面都令人难以置信。然而,在C++中,我不知道如何实现同样的事情。下面是一个例子:C++ C++;问题:与Obj-C协议类似的功能?,c++,objective-c,protocols,delegation,C++,Objective C,Protocols,Delegation,我习惯于在代码中使用Objective-C协议;它们在很多方面都令人难以置信。然而,在C++中,我不知道如何实现同样的事情。下面是一个例子: 表视图,具有函数setDelegate(协议*delegate) 类的委托,但实现协议“协议” 类2的委托,也实现“协议” setDelegate(objOfClass)和setDelegate(objOfClass2)都有效 在Obj-C中,这是很简单的,但是我不能理解如何在C++中实现它。甚至有可能吗?基本上,不考虑“协议”,而是考虑“具有纯虚拟函数的
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) { }
};
谢谢,除了我有一个问题。不同的类,即类和类2,它们本身已经是子类了。@jfm429,这就是类可以有多个祖先的原因。啊,我忘了这一点。我可以看到它有很多问题,特别是我在过去使用过的一些特定类结构(我以前研究过单继承/多继承,有优点和缺点,主要是缺点),但在这种情况下它不会引起任何问题。好吧,我认为这很好,但后来我出现了这些错误:是的,“Classin”与错误中显示的相同,即使它应该是“Class in”。有什么想法吗?(编辑:将文本放置在该链接处,因为这些子元素似乎无法使用换行符进行格式化…)如果将虚函数声明声明为纯虚函数,则不需要空函数体,即使用=0;就像我在上面的例子中做的那样。