继续关于C++中接口的一些认识上次发贴问了一下关于接口的的问题,有幸得到版主的回答,很是兴奋。在经过我一
继续关于C++中接口的一些认识
上次发贴问了一下关于接口的的问题,有幸得到版主的回答,很是兴奋。
在经过我一段时间思考觉得如下解释可能会好一点
- C/C++ code
class bulb { public: virtual void on()=0; virtual void off()=0; }; class white_bulb :public bulb { public: void on(){cout<<"from class white_bulb::on() \n";} void off(){cout<<"from class y::off()\n";} };class other_bulb :public bulb { public: void on(){cout<<"from class other_bulb::on() \n";} void off(){cout<<"from class other_bulb::off()\n";} }; void use_bulb(bulb &s) { s.on(); } int main(int argc, char *argv[]){ other_bulb o_bulbs; use_bulb(o_bulbs); system("PAUSE"); return 0;}以前我以为public的函数就是接口。,经过原来做C#同时的“一连窜”打击现在觉得如下解释可能合理
bulb的两个函数on(),off()为该程序的接口,而other_bulb和white_bulb两个类里面的函数只是实现了接口的方法。
联系到其他语言如java,c#。在这些语言当中接口定义如下
- C# code
interface bulb{ void on(); void off();}自我感觉interface就应该是C/C++里面的抽象类(或者纯虚类),他们有一个共同的特点就是不能生成对象,只能被继承实现定义的接口。而C#中,继承类实现了接口叫做方法。感觉语言是相同的(就像地震时的大家一样。)因此在C/C++中,接口应该就是纯虚函数。这个书法不知道对不对。高人指点。谢谢
[解决办法]
非private函数即为接口。
要照你的说法,那C语言就别谈接口了?
不同的语言需要不同的定义。把C#里的东西硬拉到C++来那就成鬼扯了。
