首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个调用对象成员函数的有关问题

2013-12-04 
一个调用对象成员函数的问题#include stdafx.h#include iostreamusing namespace stdclass A{public:

一个调用对象成员函数的问题


#include "stdafx.h"
#include <iostream>
using namespace std;

class A
{
public:
A():i(10){ };
void Func(void){ cout << "Func of class A" <<"     "<<i <<endl; }
private:
int i;
};

A* Test(void)
{
A *p;
A a;
p = &a; // 注意 a 的生命期
return p;
}

void _tmain()
{
A *q;
q = Test();
//q = NULL;
q->Func();
system("pause");
}

上述代码在vs2010上执行下来怎么输出对象A的成员变量i的值为什么是一个很小的负数,并不是10,我查看了q指向的i确实已经是10了,为什么调用Func()函数后i的输出值变成了-858993460 c++
[解决办法]
回去了解一下:不要返回临时对象地址!
[解决办法]
p = &a; // 注意 a 的生命期
自己不是已经写清楚了么
[解决办法]
呵呵
 p = &a; // 注意 a 的生命期

书上说,这么做,结果不可预知

热点排行