gpt4 book ai didi

c++ - 模板类层次好友继承

转载 作者:行者123 更新时间:2023-11-30 02:38:59 25 4
gpt4 key购买 nike

我正在修改 C++ 并面临以下问题:

给定:

class A {
int aVar;

public:
A(){}
virtual ~A(){};
};

template<class BASE>
class B: public BASE {
int bVar;

public:
B() : BASE() {}
virtual ~B() {}
};

template<class BASE>
class C: public BASE{
int cVar;

public:
C() : BASE() {}
virtual ~C() {}
}

D,E,F,G...

我可以做一种继承参数和函数等的分支类层次结构。喜欢typedef C<B<A>> ABC;

但是,我也应该拥有通过 protected 访问“管理”这些对象的某些组合的类。

template<class TYPE>
struct Manager {
TYPE current;

Manager() {
current.aVar++;
current.bVar++;
current.cVar++;
}
~Manager(){}
};

我的问题是:如何设置 A , B , 和 C给 friend 经理上课,不管Manager的模板类型? (例如 Manager 与模板 ABCEABCDABCXYZEFGABC ,...)

最佳答案

让他们成为任何经理的 friend :

class A {
template <typename T>
friend struct Manager;
};

template<class BASE>
class B: public BASE {
template <typename T>
friend struct Manager;
};

// etc.

关于c++ - 模板类层次好友继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com