我有这个例子:
void SetWidth(double width);
应该是:
void SetWidth(const double width);
最佳答案
对于,
虚空SetWidth(双倍宽度);
我们可以使用SetWidth()函数来更改可变宽度的值。但是,更改的值不会反映回调用的函数。说,
class A_Class
{
public:
void SetWidth(double width) {
width=width+10;
this._width=width;
std::cout<<"IN SetWidth:"<<width;
}
private:
double _width;
};
int main()
{
A_Class aObj;
double twidth=20.9;
aObj.SetWidth(twidth);
std::cout<<"twidth:"<<twidth;
return 0;
}
O/P: IN SetWidth:30.9
twidth:20.9
因此,将其设置为const并没有关系,您已经在其他原型类型[void SetWidth(const double width);]中提到过。
在内部,编译器为堆栈中的“ width”变量分配内存,并将值复制到该变量。
如果使用第二个原型类型[void SetWidth(const double width);],则可确保在函数内部不能更改可变宽度为常数。
希望这可以帮助。