C++:指针和圆括号 - 这是什么意思?

标签 c++ pointers boost

我必须对其他人编写的某些函数进行谷歌测试,我遇到了以前从未遇到过的情况。参见下面的伪代码:

typedef boost::shared_ptr<CSomeClass> CSomeClass_sh_ptr;
    CSomeClass_sh_ptr getSomething(int A)
    {
        if(A>3)
        {
            return CSomeClass_sh_ptr();
        }
        CSomeClass_sh_ptr pointerToCSomeClass = otherPointerToCSomeClass;
        return pointerToCSomeClass;
    }

所以我的问题是 -

CSomeClass_sh_ptr()

boost::shared_ptr<CSomeClass>()

是什么意思?

最佳答案

在您的上下文中,CSomeClass_sh_ptr()CSomeClass_sh_ptr 的默认构造实例.换句话说,一个默认构造的 boost::shared_ptr<CSomeClass> .

请注意 boost::shared_ptr<SomeClass>不是指针。它是一种管理指针的类型。默认构造时,其托管指针为 NULL 或 nullptr .

关于C++:指针和圆括号 - 这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136034/

相关文章:

c++ - 如何将 int* -或- float* 分配给 void* 并稍后使用结果?

C 函数删除字符串中的元音不起作用?

c++ - 使用 boost::serialization 保存数据时出现段错误

c++ - boost 或 Visual Studio 2010 中的内存泄漏

c++ - 文件系统::路径构造函数调用失败

c++ - 将可变参数模板粘合到可变参数函数

c++ - 如何用c++安装浏览器扩展?

c - 在另一个指向数组的指针指向的循环中获取 char 数组的值

c++ - 从 vector 列表中删除 vector 元素 C++

c++ - 删除指针后,它仍然可以在 Mac OS X 中使用 Xcode 在 C++ 中工作