在这个任务中,我需要设置和获取类和命名空间之外的士兵数量(并在 main 中正确调用它)
namespace GeneralStaff
{
class Troops
{
private:
int nSoldiers;
public:
string name;
string rank;
Troops(string _name, string _rank, )
{
name= "Unknown";
rank= "RankUnknown";
}
};
} // namespace GeneralStaff
This is outside of class and function
void GeneralStaff::Troops setSoldierN(int n)
{
nSoldiers= n;
}
在主要:GeneralStaff::Troops;
Troops.setSoldierN(10);
我知道我需要在 main (source) 中正确声明对象,问题出在函数集上。
最佳答案
要在类之外定义类的方法,只需使用范围解析(::) 运算符。但是要在类外定义一个函数,你需要在类本身中声明它,而你并没有这样做。检查以下代码,它应该可以工作:
namespace GeneralStaff
{
class Troops{
private:
int nSoldiers;
public:
string name;
string rank;
void setSoldierN(int x);
Troops(string _name, string _rank)
{
name= _name;
rank= _rank;
}
};
}
void GeneralStaff::Troops::setSoldierN(int n){
nSoldiers= n;
}
另外,我已经根据构造函数中传入的值初始化了 name 和 rank ,因为如果要使用固定值初始化变量,则不需要传递它们。并且主函数中的对象应该按如下方式创建:
GeneralStaff::Troops troop("John", "2");
troop.setSoldierN(10);
关于c++ - 命名空间内的类和 C++ 外的设置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63058583/