【问题标题】:Can I pass a pointer to a class object into a function? What is the proper syntax?我可以将指向类对象的指针传递给函数吗?什么是正确的语法?
【发布时间】:2015-09-29 10:32:45
【问题描述】:

我无法将指向类对象的指针传递给函数。

myFunction(fruit apple)
{
...
}

 

 int main()
    {
        fruit *apple = new fruit;

        myFunction(&apple);
    }

之后编译器告诉我它无法将参数从水果转换为字符串。我不明白字符串与这些有什么关系。是否可以将对象的指针作为函数参数传递?

【问题讨论】:

    标签: function class pointers object argument-passing


    【解决方案1】:

    可能与您对水果类的定义有关。以下是您在此处尝试实现的正确实现。

    myFunction (fruit *apple)
    {
    ...
    }
    
    int main()
    {
       fruit *apple = new fruit;
       myFunction(apple);
    }
    

    在您的代码中,apple 已经是一个指向fruit 类型对象的指针。因此,您无需使用 & 运算符再次获取其地址。如果您的要求是将指针传递给指向对象的指针(我怀疑这是您需要的),那么您的 main() 函数没问题,但 myFunction 将定义如下:

    myFunction (fruit **apple)
    {
    ...
    }
    

    【讨论】:

    • 这很有帮助,但 MVS 仍然认为参数应该是一个字符串。 “无法在“myFunction(apple);”行将参数 2 从 'fruit' 转换为 'std::string'。
    • 需要多看你的代码;您可以发布完整的内容,包括编译器引发错误的行号吗?
    • 我后来意识到出了什么问题。我忘了用我的函数更新链接到另一个 cpp 文件的头文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多