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

奇怪 为什么输出的不一样?该如何处理

2012-02-07 
奇怪 为什么输出的不一样?C/C++ code#includePy.h#includeiostreamusing namespace stdostream &oper

奇怪 为什么输出的不一样?

C/C++ code
#include"Py.h"#include<iostream>using namespace std;ostream &operator<<(ostream &os,Py & rhs){    cout<<"F(x)= ";    int n=rhs.GetDatalist().Getnum();    if(n==0)        cout<<"0"<<endl;    else    {        List b=rhs.GetDatalist();        Node *q=b.Getfirst()->link;//1        Node *p=rhs.GetDatalist().Getfirst()->link;//2        for(int i=1;i<=n;i++)        {            cout<<p->data.c<<"x^"<<p->data.e;            if(i!=n)                cout<<" + ";            p=p->link;        }        cout<<endl;    }    return os;}

按理说p和q中的data应该是一样的吧?为什么调试的时候q的data能够正常输出 而p输出的是随机值呢?
调试结果:
-q0x00265010 {data={...} link=0x00265058 }Node *
+data{c=1 e=2 }Term
+link0x00265058 {data={...} link=0x00265010 }Node *


-p0x002650e8 {data={...} link=0xfeeefeee }Node *
+data{c=-17891602 e=-17891602 }Term
+link0xfeeefeee {data={...} link=??? }Node *


[解决办法]
没看懂,应该是你循环多了一遍,或就是作用域不对
[解决办法]
不好说,代码贴全了
[解决办法]
这个函数写得绝对有问题,你是重载输出操作符,返回os, 但是你在函数中都没有对os进行操作就直接返回了
[解决办法]
我好像同意楼上的意思,应该就是这问题吧,谢谢
[解决办法]
里面应该有自己定义的库函数吧。只能看出重载输出的里的错误,上面已经提出来了。呵呵。加油。

热点排行