如何设置代表接口的类?这只是一个抽象的基类吗?
可能重复:
在C++中模拟接口的首选方法
我很想知道C++中是否有接口,因为在Java中,设计模式的实现主要是通过接口将类解耦.有没有类似的方法在C++中创建接口呢?
众所周知,有些语言有接口的概念.这是Java:
public interface Testable {
void test();
}
Run Code Online (Sandbox Code Playgroud)
如何以最紧凑的方式在C++(或C++ 11)中实现这一点并且代码噪声很小?我很欣赏一个不需要单独定义的解决方案(让标题足够).这是一个非常简单的方法,即使我发现越野车;-)
class Testable {
public:
virtual void test() = 0;
protected:
Testable();
Testable(const Testable& that);
Testable& operator= (const Testable& that);
virtual ~Testable();
}
Run Code Online (Sandbox Code Playgroud)
这只是一个开始......而且已经超过了我想要的时间.怎么改进呢?也许在std命名空间的某个地方有一个基类专为此而设计?
我是 C++ 编程新手,并且很难组织我的项目。我有一个名为 StateManager 的类,它有一个头文件和一个 cpp 文件。cpp 包含所有实现。
如果我现在想要创建一个 Interface 类:
class IStateManager
{
public:
virtual ~IStateManager() {}
virtual void SomeMethod {}
};
Run Code Online (Sandbox Code Playgroud)
我知道接口并不像 C# 或 Java 中那样真正存在,但我希望多个类从这个“接口”继承。
这个类还需要头文件和cpp文件吗?或者我可以把它放在头文件中吗?
c++ ×4
interface ×3
abstract ×1
c++11 ×1
concept ×1
inheritance ×1
polymorphism ×1
pure-virtual ×1