奇怪 为什么输出的不一样?该如何处理
奇怪 为什么输出的不一样?
按理说p和q中的data应该是一样的吧?为什么调试的时候q的data能够正常输出 而p输出的是随机值呢?
调试结果:
- q 0x00265010 {data={...} link=0x00265058 } Node *
+ data {c=1 e=2 } Term
+ link 0x00265058 {data={...} link=0x00265010 } Node *
- p 0x002650e8 {data={...} link=0xfeeefeee } Node *
+ data {c=-17891602 e=-17891602 } Term
+ link 0xfeeefeee {data={...} link=??? } Node *
------解决方案--------------------
没看懂,应该是你循环多了一遍,或就是作用域不对
------解决方案--------------------
不好说,代码贴全了
------解决方案--------------------
这个函数写得绝对有问题,你是重载输出操作符,返回os, 但是你在函数中都没有对os进行操作就直接返回了
------解决方案--------------------
我好像同意楼上的意思,应该就是这问题吧,谢谢
------解决方案--------------------
里面应该有自己定义的库函数吧。只能看出重载输出的里的错误,上面已经提出来了。呵呵。加油。
- 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输出的是随机值呢?
调试结果:
- q 0x00265010 {data={...} link=0x00265058 } Node *
+ data {c=1 e=2 } Term
+ link 0x00265058 {data={...} link=0x00265010 } Node *
- p 0x002650e8 {data={...} link=0xfeeefeee } Node *
+ data {c=-17891602 e=-17891602 } Term
+ link 0xfeeefeee {data={...} link=??? } Node *
------解决方案--------------------
没看懂,应该是你循环多了一遍,或就是作用域不对
------解决方案--------------------
不好说,代码贴全了
------解决方案--------------------
这个函数写得绝对有问题,你是重载输出操作符,返回os, 但是你在函数中都没有对os进行操作就直接返回了
------解决方案--------------------
我好像同意楼上的意思,应该就是这问题吧,谢谢
------解决方案--------------------
里面应该有自己定义的库函数吧。只能看出重载输出的里的错误,上面已经提出来了。呵呵。加油。