递归模板 类
Recursive template classes
我有两个 类 需要保持彼此的引用如下:
template <typename S>
class H {
public:
H(const S& s): s_{s} {}
private:
const S& s_;
}
然后
template <typename H>
class S {
public:
S(const H& h): h_{h} {}
private:
const H& h_;
}
我无法定义像
这样的东西
Service<ItsHandler<Service<....>
有更好的主意吗?
Abstract base 类 和多态性如何?:
class baseHandler {
public:
virtual func1() = 0;
virtual ~baseHandler() = 0;
};
template <typename S>
class H : public baseHandler {
public:
H(const S& s): s_{s} {}
private:
const S& s_;
};
//template <typename H>
class S {
public:
S(const baseHandler& h): h_{h} {}
private:
const baseHandler& h_;
};
我有两个 类 需要保持彼此的引用如下:
template <typename S>
class H {
public:
H(const S& s): s_{s} {}
private:
const S& s_;
}
然后
template <typename H>
class S {
public:
S(const H& h): h_{h} {}
private:
const H& h_;
}
我无法定义像
这样的东西Service<ItsHandler<Service<....>
有更好的主意吗?
Abstract base 类 和多态性如何?:
class baseHandler {
public:
virtual func1() = 0;
virtual ~baseHandler() = 0;
};
template <typename S>
class H : public baseHandler {
public:
H(const S& s): s_{s} {}
private:
const S& s_;
};
//template <typename H>
class S {
public:
S(const baseHandler& h): h_{h} {}
private:
const baseHandler& h_;
};