标题:关于C++中:*&与*的问题
取消只看楼主
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
结帖率:100%
已结贴  问题点数:10 回复次数:3 
关于C++中:*&与*的问题
初学C++类,求指教:
代码如下:这是一道计数进出货质量的问题,每个节点设为GOODS,
每次保存的货物质量为weight,设置静态变量total_weight计数总重。
#include<iostream>
using namespace std;
class GOODS {
public:
    GOODS(int w) {
        weight = w;
        total_weight += w;
    }
    ~GOODS(){
        total_weight -= weight;
    }
    int Weight() {
        return weight;
    }
    static int Total_weight() {
        return total_weight;
    }
    GOODS *next;
private:
    int weight;
    static int total_weight;
};
int GOODS::total_weight = 0;
void purchase(GOODS *&f, GOODS *&r, int w) {
    GOODS *p = new GOODS(w);
    p->next = NULL;
    if (f == NULL) {
        f = r = p;
    }
    else {
        r->next = p;
        r = r->next;
    }
}
void sale(GOODS *&f, GOODS *&r) {
    if (f == NULL) {
        cout << "No any GOODS!" << endl;
        return;
    }
    GOODS *p = f;
    f = f->next;
    delete p;
    p = NULL;
    cout << "saled" << endl;
}
int main() {
    GOODS *f = NULL;
    GOODS *r = NULL;
    int w,choice;
    do {
        cin >> choice;
        switch (choice) {
        case 1: {cin >> w; purchase(f, r, w); break; }//1表示进货,w为此次进货的重量
        case 2: {sale(f, r); break; }                //2表示出货,从表头开始出货
        case 0:{break;}                                //0表示退出
        }
        cout << "Now total weight is " << GOODS::Total_weight() << endl;
    } while (choice);
    return 0;
}
这个时候输出时正常的,
但当把
void purchase(GOODS *f, GOODS *r, int w)
void sale(GOODS *f, GOODS *r)
这两个函数的&去掉后输出确实不正常的,
请问*&和*有什么区别?

[此贴子已经被作者于2016-3-20 14:28编辑过]

搜索更多相关主题的帖子: private include public return 
2016-03-20 14:25
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
得分:0 
回复 2楼 hjx1120
hh虽然没看懂,还是要O(∩_∩)O谢谢你。
2016-03-21 23:23
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
得分:0 
回复 3楼 luckhide
那再请问一下:**和*&有什么区别呢?
2016-03-21 23:34
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
得分:0 
回复 6楼 luckhide
O(∩_∩)O哈!突然顿悟了,O(∩_∩)O谢谢你啦。
2016-03-22 22:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462703-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.683239 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved