首页 文章

如何从另一个函数调用类函数

提问于
浏览
-5

我在我的项目中有一个“Product”类,在main函数中我创建了新的Product项 - “productsListHead” . 在我的main函数中,我调用了类“addProduct”函数,该函数将产品添加到类链表中 . 为了使程序更有条理,我想将其分解为函数 . 我想创建一个调用“addProduct”函数的函数 . 这是我试图做的:main.cpp:

int main(){
    int option;
    Product productsListHead;
    do{
        cin>>option;
        if(option==1)
          products_add(&productsListHead);
    }while(option!=0);
    return 1;
}

void products_add(Product productsListHead){
    productsListHead.addProduct(&productsListHead);
}

这是List.cpp中“addProduct”的 Headers :

void Product::addProduct(Product* head){...}

它没用 . 我怎样才能使用“productsListHead.addProduct(&productsListHead);”在products_add?

3 回答

  • 0

    您的

    void products_add(Product productsListHead)
    

    接受一个对象但你用指针调用它

    products_add(&productsListHead);
    

    顺便说一句:请注意,您当前的代码每次都传递相同的对象 .

  • 0
    void products_add(Product productsListHead)
    

    products_add函数的这个签名接受 Product Object 而不是 Product Object 的地址

    这个电话应该是

    products_add(productsListHead);
    

    或功能应该是

    void products_add(Product* productsListHead)
    
  • 0

    您按值传递Product,因此创建了对象的临时副本 . 阅读本文:http://www.cplusplus.com/articles/z6vU7k9E/

    TLDR:

    void products_add(Product& product);
    

相关问题