【发布时间】:2014-09-08 01:40:50
【问题描述】:
我需要对按值/指针/引用传递的一劳永逸的说明。
如果我有一个变量,例如
int SomeInt = 10;
我想将它传递给类似的函数
void DoSomething(int Integer)
{
Integer = 1;
}
在我当前的情况下,当将 SomeInt 传递给 DoSomething() 时,我希望 SomeInt 的值根据我们在 DoSomething() 中对其所做的任何事情进行更新,并且在内存和性能方面最有效,所以我没有复制周围的变量?话虽如此,以下哪些原型可以完成这项任务?
void DoSomething(int* Integer);
void DoSomething(int& Integer);
我如何将变量实际传递给函数?前两个原型有什么区别?
最后,如果在类中使用函数
class SomeClass
{
int MyInteger;
public:
void ChangeValue(int& NewValue)
{
MyInteger = NewValue;
}
};
如果我将一个整数传递给 ChangeValue,当我传入 get 的整数被删除时,这是否意味着当我尝试在类中使用 MyInteger 时,它将不再可用?
感谢大家的宝贵时间,我知道这是一个基本问题,但我不断遇到的解释让我更加困惑。
【问题讨论】:
-
是的,这些功能可能会完成任务。
-
-1 我有兴趣了解人们如何在不看基本学习材料的情况下学习像 C++ 这样复杂的编程语言。
-
您可能有兴趣阅读FAQ问题stackoverflow.com/questions/2139224/…
标签: c++ c++11 pass-by-reference pass-by-value pass-by-pointer