接口与c++中的java一样
Interface as in java in c++?
可能重复:
如何在C++中声明接口?
有人问我一个问题:"在C++中,没有像java中那样的接口。但如果你能在C++中实现它们,你会怎么做?">
如何?我会用虚拟方法做一个类。这看起来像java中的接口,或者?
感谢
您可以使用多重继承在C++中创建接口。
您创建了一个纯虚拟的基类(所有函数均为0(,然后您的类从中继承。
多重继承意味着您可以从其中任意多个继承。
// Interface definition
class ISomethingable
{
public:
virtual ~ISomethingable() {}
virtual void DoSomething() = 0;
}
// Your code
class MyClass : public ISomethingable
{
public:
void DoSomething()
{
// Do something concrete.
}
}
另请参阅:如何在C++中声明接口?
是的,只需要创建一个没有成员变量和纯虚拟函数的类。
C++中的接口将是一个抽象基类,不能从中实例化。与java接口不同,它们实际上可以具有部分实现和成员变量。
相关文章:
- 是否有技术原因阻止 Java 中的 final C++ 像 const 一样严格?
- Java 是否像C++模板一样具有泛型推论?
- 为什么向量不支持 size 作为成员变量,就像 Java 类中的长度变量一样,而是函数 size()?
- Java,这是可能的吗?自动方法范围跟踪,就像C++中的宏一样
- 如何表达匿名方法覆盖,就像在 java 中使用 c++ 一样
- 就像Java中的指针C++一样
- Java是否有默认的复制构造函数(就像C++中一样)
- 我们有没有像c一样用java进行条件编译
- 在C++中,我可以像在Java中一样拥有一个接口变量吗
- 如何以毫秒为单位获取自 1970 年以来的当前时间戳,就像 Java 一样
- C++:像在 Java 中一样将接口作为参数传递
- 在 c++ 中是否有像 timer 和 timertask 这样的东西,就像 java 一样
- C++像枚举头编译器错误一样的Java
- 我们是否可以像jquery一样在C++/Java中使用链式样式设置器
- 有没有一种更简单的方法可以像在java中使用包一样在C++中重用代码?制作头文件比较复杂
- 是否可以像Java一样在VM中运行,从而使C++平台独立
- C++中的分段错误是否可以像在 Java 中处理 NullPointerExceptions 一样处理
- c++的NEW对象作为参数(和Java一样)
- Java是否像c++一样有未定义的行为?
- 接口与c++中的java一样