我正在编写一个函数,它可以正确地返回一个指向引用的指针。我发现尽管函数返回了它应该返回的内容,但是
请参考以下代码片段:
std::cout
却修改了结果。我在这里做错了什么吗?如何纠正这种行为?请参考以下代码片段:
#include "stdafx.h"
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x_):m_Index(x_){}
int m_Index;
};
void myfunction(int *¤tIndex, MyClass obj)
{
currentIndex = &obj.m_Index;
}
int _tmain(int argc, _TCHAR* argv[])
{
MyClass obj(5);
int *Index = NULL;
myfunction(Index, obj);
int curr_Index = *Index;
cout << "Index = " << curr_Index << std::endl; // This works fine.
cout << "Index = " << *Index << std::endl; // This modifies *Index
return 0;
}