C++:传递 "typedef"定义的类作为参数

标签 c++ object boost instance typedef

我正在创建一个实例 Dataset::Ptr 数据,然后我需要将这个实例传递给另一个方法,但我在将“数据”作为参数传递时遇到了问题。

Dataset类定义如下:

//Definition of "Dataset" class in Datset.h
class Dataset : public Objects
{
public:
    typedef boost::shared_ptr<Dataset> Ptr;

...

        void foo(); 

在我实例化“数据集”对象的类中:

void doWork(Dataset::Ptr* ds)
{
ds->foo();------>Here I get the error that foo is not defined. ds doesnt have any 
}

void Function(){
Dataset::Ptr* ds;
....do something with ds....
doWork(&ds);
}

错误是boost::shared_ptr不能改成Dataset::Ptr。

我做错了什么?如何正确传递实例?

谢谢

最佳答案

Dataset::Ptr已经是一个指针,Dataset::Ptr*表示 boost::shared_ptr<Dataset>* Ptr ; <强> ds变成一个指针 to boost::shared_ptr 没有 foo()函数定义。

更新

void doWork(Dataset::Ptr* ds)

void doWork(Dataset::Ptr ds)

关于C++:传递 "typedef"定义的类作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835469/

相关文章:

c++ - 如何优化这种简单的数据(事件)类型转换类?

c++ - 给定 vector 查找素数的算法的时间复杂度

javascript - 为相同的属性添加对象和数组

javascript - 字符串插值。找到与 [...] 内的字符串匹配的对象 prop 并替换为 prop 的值

c++ - 如何使用 C++/Boost 从字符串中过滤字符

c++ - boost 正则表达式以捕获所有重复的模式

c++ - 为什么可以在没有定义的情况下使用枚举类型

Java 创建对象作为函数的参数

c++ - 如何在 boost 日期时间中忽略周末和假期?

c++ - 这是编写指针数组的正确方法吗?