gpt4 book ai didi

c++ - 如何转发声明应该属于一个类的模板化类型?

转载 作者:可可西里 更新时间:2023-11-01 15:48:38 24 4
gpt4 key购买 nike

假设我有 2 个类:

class A
{
public:
typedef std::shared_ptr<A> Ref;
...

private:
B::Ref _b;
}

class B
{
public:
typedef std::shared_ptr<B> Ref;
...

private:
A::Ref _a;
}

这显然需要 B 类和 B::Ref 的前向声明。前向声明 B 很简单,但是如何为 B::Ref 做到这一点呢?

最佳答案

解决这个问题的方法之一是

class A;
class B ;

template <typename T>
struct Traits {
typedef std::shared_ptr<T> Ptr;
};


class A
{
private:
Traits<B>::Ptr _b;
};

class B
{
private:
Traits<A>::Ptr _a;
};

关于c++ - 如何转发声明应该属于一个类的模板化类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096796/

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