gpt4 book ai didi

c++ - typedef 类的前向声明

转载 作者:太空狗 更新时间:2023-10-29 23:50:32 25 4
gpt4 key购买 nike

例如我们有一些类及其 ptr typedefed

class Foo
{
....
};
typedef shared_ptr<Foo> FooPtr;

是否可以转发声明FooPtr?目的是避免将 header 包含在 FooPtr 定义中。

更新 1我试过的代码
另一个.h

class FooPtr;
calss A
{
.....
FooPtr m_pFoo;
.....
}

编译错误

Foo.h: error C2371: 'FooPtr' : redefinition; different basic types
1> another.h(7) : see declaration of 'FooPtr'

最佳答案

是的,这应该是完全可能的,因为 shared_ptr 被设计成 pointer 的安全版本并且允许指向不完整类型的指针(就像引用一样)。

是的,您可以删除此依赖项并用简单的前向声明替换 Foo 的主体(或包含其 header ):

class Foo;
typedef shared_ptr<Foo> FooPtr;

关于c++ - typedef 类的前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29471313/

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