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

时间:2015-04-24 13:35:30

标签: c++ class pointers linked-list

我的项目中有一个"产品" class,在main函数中我创建了新的Product项目 - " productsListHead"。在我的主要功能中,我称之为" addProduct" function,将产品添加到类链表。为了使程序更有条理,我想将其分解为函数。我想创建一个调用" 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);
}

这是" addProduct"的标题。在List.cpp中:

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

它没有用。我如何使用" productsListHead.addProduct(& productsListHead);"在products_add?

3 个答案:

答案 0 :(得分:0)

products_add(&productsListHead);

获取一个对象但是使用指针

调用它
npm install -g bower@latest

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

答案 1 :(得分:0)

void products_add(Product productsListHead)

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

这个电话应该是

products_add(productsListHead);

或功能应该是

void products_add(Product* productsListHead)

答案 2 :(得分:0)

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

TLDR:

void products_add(Product& product);