没有匹配的方法编译器错误

No matching method compiler error

本文关键字:方法 编译器 错误      更新时间:2023-10-16

我正在尝试用C++语言调用一个方法。

以下是的防御方法

  static responseID
  sell(ToteGateway* toteToUse,
       gdi_t gdi,
       char* accountID,
       int pin,
       int card,
       int race,
       pennies* stake,
       int betType,
       runnerList* legRunners,
       int numLegs,
       pennies* ticketCost,
       pennies* salesTax,
       pennies* accessCharge,
       tfaddress* sellAddress,
       pennies* availableBalance,
       char* tsnNumber,
       pennies* holdBalance,
       pennies initial_balance,
       char force_to_one_leg,
       char* yourSerialNumber,
       int64_t* cisTktID,
       char* cisAlias,
       uint32_t spfavs);

以下是我如何称之为

 returnValue = Account::sell(toteGateway, myGdi, accountID, pin, card, race, stake,
           nBetType, theRunners, numLegs, &ticketCost, &salesTax, &accessCharge, &sellAddress,
           &availableBalance, (char*)&theTkt, &holdBalance, 1,yourSerialNumber,cisTktID,cisAlias,spfavs);
      LOG_DEBUG_MSG(" After Executing  Account::sell");

下面的错误发生在添加最后4个参数之后,这里是我像一样传递的值

  char* yourSerialNumber = (char*)ns1__accountSell->yourSerialNumber.c_str();
      int64_t cisTktID = (int64_t)ns1__accountSell->cisTktID;
      char* cisAlias =(char*)ns1__accountSell->cisAlias.c_str();
      uint32_t  spfavs = ns1__accountSell->spfavs;

并将这些值传递给方法。我还留下了一个类似的错误

src/atlserverservice.cpp:1360:错误:没有匹配的函数可用于调用'Account::sell(ToteGateway*&,uint32_t&&,char*&int&;,int&aamp;,pennies&&;,int&)'

Account.h:509:注意:候选者是:static responseID Account::sell

Account.h:567:注意:静态响应ID帐户::sell(ToteGateway*,gdi_t,char*,int,int,pennies*,int

Account.h:591:注意:static responseID帐户::sell(ToteGateway*,gdi_t,char*,int,int,pennies*,int

Account.h:616:注意:静态响应ID帐户::sell(ToteGateway*,gdi_t,char*,int,int,pennies*,int

Account.h:633:注意:static responseID帐户::sell(ToteGateway*,gdi_t,char*,int,int,integ_data*,int

原因可能是什么?

您需要使用&cisTktID来传递地址而不是值。