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

我在我的项目中有一个“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)

2 years ago

您的

void products_add(Product productsListHead)

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

products_add(&productsListHead);

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

2 years ago

void products_add(Product productsListHead)

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

这个电话应该是

products_add(productsListHead);

或功能应该是

void products_add(Product* productsListHead)

2 years ago

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

TLDR:

void products_add(Product& product);