如果必须返回i,以下代码(func1())是否正确?我记得在某处读到返回对局部变量的引用时存在问题.它与func2()有什么不同?
int& func1()
{
int i;
i = 1;
return i;
}
int* func2()
{
int* p;
p = new int;
*p = 1;
return p;
}
Run Code Online (Sandbox Code Playgroud) 我需要创建一个返回指向int的指针的函数.
像这样:
int * count()
{
int myInt = 5;
int * const p = &myInt;
return p;
}
Run Code Online (Sandbox Code Playgroud)
由于指针只是一个地址,因此在调用此函数后,变量myInt将被销毁.如何在此方法中声明一个int,它将在内存中保留一个位置,以便我以后通过返回的指针访问它?我知道我可以在函数外部声明int,但是我想在函数内部声明它.
在此先感谢您的帮助!
我正在努力理解课堂上的getter和setter功能......
我的问题是:如果我设计一个只从其类中获取状态的函数("getter"函数),为什么将其标记为"const成员函数"?我的意思是,如果我的函数被设计为不改变其类的任何属性,为什么使用const成员函数?我不明白请:(
例如:
int GetValue() {return a_private_variable;}
Run Code Online (Sandbox Code Playgroud)
和
int GetValue() const {return a_private_variable;}
Run Code Online (Sandbox Code Playgroud)
真正的区别是什么?