C++ 类函数语法混乱
我有以下功能:C++ 类函数语法混乱,c++,class,syntax,C++,Class,Syntax,我有以下功能: int Player::calcInitiative(string name, int Dex, int Mod, int Lvl, int& diceRoll) { int Init = 0; Init = (Lvl/2) + Dex + Mod + diceRoll; return Init; } 在其他地方,我实例化了如下几个对象: Player Derek("Derek", 2, 0, 6, rollD); 我现在想使用该函数,因此尝试: Derek.c
int Player::calcInitiative(string name, int Dex, int Mod, int Lvl, int& diceRoll) {
int Init = 0;
Init = (Lvl/2) + Dex + Mod + diceRoll;
return Init;
}
在其他地方,我实例化了如下几个对象:
Player Derek("Derek", 2, 0, 6, rollD);
我现在想使用该函数,因此尝试:
Derek.calcInitiative;
但是编译器告诉我缺少参数列表。我不想在调用中重新键入参数,因为它们已经为播放器定义了,如上所述。我想我的上述电话就足够了。如何更改它,使其能够识别玩家已有的特征?您只需为函数指定正确的参数数量和类型:
int Player::calcInitiative(string name, int Dex, int Mod, int Lvl, int& diceRoll) {
int Init = 0;
Init = (Lvl/2) + Dex + Mod + diceRoll;
return Init;
}
根据功能定义:
calcInitiative(string name, int Dex, int Mod, int Lvl, int& diceRoll)
它要求您传递string,int,int,int,int
类型参数
Derek.calcInitiative;
应该是:
//calling outside class scope
Derek.calcInitiative(getName(), getDex(), getMod(), getLvl(), getDiceRoll());
//^^assume that get*() are getters and your class members are private
关键是
必须提供正确数量和类型的参数 中提供的参数
Player Derek("Derek", 2, 0, 6, rollD);
是传递给类Player
的构造函数的参数。它们与functioncalInitiative
的参数绝对没有关系。您的CANCINITIATIVE
在编写时有自己独立的参数集。每次调用calcinitivative
时,都必须指定这些参数。这是没有办法的
如果你是编写classPlayer
的人,那么你应该已经理解了。如果您想编写calcinInitiative
,这样它就可以在没有任何参数的情况下调用,那么您应该完全做到这一点。但你宣布它是
calcInitiative(string name, int Dex, int Mod, int Lvl, int& diceRoll)
这意味着它需要参数。如果要使用成员变量,请使用成员变量,不要为函数的参数操心。或者对不带参数的函数实现重载,以成员变量作为参数调用参数化函数。