基类中基类子类型的成员变量

bc888

有没有办法对模板执行以下操作?以下代码引发未知的类型编译时错误。

我正在尝试创建两种不同类型的应用程序,它们是从Application继承的,而那些是从Service继承的Service的。所有应用程序都有一个称为Cron的服务,该服务将从Service继承。应用程序将被线程化和分离,而应用程序派生的服务将被线程化和连接。我把这个分解成最简单的术语。

#include <iostream>

class Application
{
public:
Service service; //Throws unknown type... Forward decl. will not work either.

};


class Service:public Application
{


};

int main(int argc, const char * argv[])
{

// insert code here...
std::cout << "Hello, World!\n";
return 0;
}

谢谢,

布鲁斯

约翰·迪布林

不,没有办法做你想做的事,因为你想做的事是胡说八道。等等,我会解释。

Service派生自Application,但Application具有类型的成员Service

这是一个周期性的依赖关系,但除此之外,我只是不理解。因为Service是从派生的Application,其成员类型为Service,而是从派生的Application,成员类型为Service...,您就会明白。就像站在一面镜子前,一面镜子,试图找到终点。

现在的问题是,您真正要做什么?

在您的评论中,您说:

我正在尝试创建两种不同类型的应用程序,它们是从Application继承的,而那些是从Service继承的Service的。所有应用程序都有一个称为Cron的服务,该服务将从Service继承。

这里仍然有点模棱两可。应用程序如何从应用程序派生?

我怀疑您追求的是实现的类的两个不同的具体实例化Service一个仅实现Service,另一个也实现其他内容。

在这种情况下:

class Service
{
public:
  void Cron();
};

class Application
{
public:
  void OtherStuff();
};

但是你也说:

应用程序将被线程化和分离,而应用程序派生的服务将被线程化和连接。

这听起来像是一项基于策略的设计工作

class DetatchedPolicy
{
public:
  void StartThread();  // this function would start the thread and detatch
};

class JoinedPolicy
{
public:
  void StartThread();  // this function would start the thread and join
};

template <typename ThreadingPolicy>
class BasicService
:
  public ThreadingPolicy
{
public:
  Service()
  {
    StartThread();
  }
  void Cron();
};

typedef BasicService <JoinedPolicy> Service;
typedef BasicService <DetatchedPolicy> Application;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从基类中设置子类变量/属性

来自分类Dev

调用基类构造函数与初始化子类中的成员变量

来自分类Dev

抽象基类成员变量

来自分类Dev

从基类访问子类的静态成员

来自分类Dev

子类包含基类使用的静态成员

来自分类Dev

添加字符串类型的类成员将导致调用基类函数而不是子类

来自分类Dev

在子类中快速设置基类“ let”变量

来自分类Dev

从基类静态成员访问子类静态成员

来自分类Dev

用新类型覆盖基类成员

来自分类Dev

用新类型覆盖基类成员

来自分类Dev

遍历基类成员

来自分类Dev

反映C ++中基类的子类

来自分类Dev

子类中的C ++基类函数重载

来自分类Dev

从基类访问并执行子类中的函数

来自分类Dev

如何在基类中获取派生类的子类型

来自分类Dev

如何从唯一的指针到基类获取子类的成员?

来自分类Dev

如何从具有继承关系的子类中访问基类中的私有成员(C ++)

来自分类Dev

C ++当我不知道子类型时,从基类中调用子类函数

来自分类Dev

C ++当我不知道子类型时,从基类中调用子类函数

来自分类Dev

基类VS中的单个受保护成员变量派生类中的多个私有成员变量

来自分类Dev

C ++-在派生类中静态初始化基类保护的成员变量

来自分类Dev

在子类Java中更改类变量类型

来自分类Dev

从子类调用基类

来自分类Dev

从基类结构构造子类

来自分类Dev

从子类调用基类

来自分类Dev

Typescript 基类参考子类

来自分类Dev

基类中的虚拟方法,可使用子类中的静态变量

来自分类Dev

创建一个基类与子类的静态类型的对象?

来自分类Dev

Python 3的基类类型的注释只允许当前子类

Related 相关文章

热门标签

归档