gpt4 book ai didi

C++/boost : declaring an encapsulated shared_array

转载 作者:行者123 更新时间:2023-11-30 04:16:44 24 4
gpt4 key购买 nike

我最近开始使用智能指针。如果我是正确的,则声明智能指针:

shared_array<double> a(new double[n]);

但是如果a被封装在一个类中怎么办呢?目前我正在做如下,但这看起来 super 丑陋:

头文件:

class Foo {
public:
Foo(int size);
shared_array<double> _a;
};

源文件

Foo::Foo(int n){
shared_array<double> p (new double[n]);
_a = p;
}

最佳答案

可以使用构造函数初始化列表:

Foo::Foo(int n) : _a(new double[n]) {}

如果你需要在构造函数体中设置托管数组,那么

Foo::Foo()
{
int n = someCalculation();
_a.reset(new double[n]);
}

关于C++/boost : declaring an encapsulated shared_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17586628/

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