奇怪 为什么输出的不一样?该如何处理
奇怪 为什么输出的不一样?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进行操作就直接返回了
[解决办法]我好像同意楼上的意思,应该就是这问题吧,谢谢
[解决办法]里面应该有自己定义的库函数吧。只能看出重载输出的里的错误,上面已经提出来了。呵呵。加油。