在我写的一个小游戏中,我有一个Weapon带有两个构造函数的类,一个用于获取一些参数来生成一个自定义武器,另一个用于获取一个默认武器CHAIN_GUN:
Weapon::Weapon (void) {
// Standard weapon
*this = getWeapon(CHAIN_GUN);
return;
}
Run Code Online (Sandbox Code Playgroud)
问题:使用*this和operator=初始化课程是否会产生任何负面影响?
我在理解此代码段中的行为时遇到了一些麻烦:
unsigned int i = 2;
const int &r = i;
std::cout << r << "\n";
i = 100;
std::cout << r << "\n";
Run Code Online (Sandbox Code Playgroud)
第一个print语句按预期给出2,但是当我更改引用变量的值时,它不会反映在引用中.第二个印刷声明也给出2,但我认为它应该给100?
如果我将变量i变为类型int而不是unsigned int,它就像我期望的那样工作.这里发生了什么?