标题:这是我写的一个类,实现简单的栈,但不知道为什么会停止工作。。
只看楼主
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
结帖率:100%
已结贴  问题点数:20 回复次数:8 
这是我写的一个类,实现简单的栈,但不知道为什么会停止工作。。
#include<iostream.h>

struct Node
{
    int data;
    Node* next;
};

class stack
{
public:
    stack()   //构造函数初始化类
    {
        Node* head = new Node;
        head->data = 0;
        head->next = NULL;
    }
    void put( int item )
    {
        Node* pS = new Node;
        pS->data = item;
        pS->next = head->next;
        head->next = pS;
    }
    int get()
    {
        int num = 0;
        num = head->next->data;
        head = head->next;
        return num;
    }
private:
    Node* head;
};

void main()
{
    stack lala;
    lala.put(10);
    lala.put(12);
    lala.put(14);

    cout<<lala.get()<<endl;
    cout<<lala.get()<<endl;
    cout<<lala.get()<<endl;
}
搜索更多相关主题的帖子: head next private include public 
2013-03-28 14:00
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:10 
运行看看
程序代码:
#include<iostream.h>

class data
{
public:
    data()
    {
        int a = 10;    //此 a非彼 a
    }
    int Get()
    {
        return a;
    }
private:
    int a;
};
void main()
{
    data obj;
    cout << obj.Get() << endl;
}


[fly]存在即是合理[/fly]
2013-03-28 14:37
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
得分:0 
回复 2楼 azzbcc
没事了,我自己找到错误在哪里了。。
老师说了一定要用链表,所以。。。
不过还是谢谢你。。
2013-03-28 17:34
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
好吧,你没读懂我意思、


[fly]存在即是合理[/fly]
2013-03-28 18:03
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
得分:0 
回复 4楼 azzbcc
额。。。。请问你啥意思呃?
2013-03-28 20:35
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
没什么,

你是把那个 Node* head = new Node;

红色部分去掉么?


[fly]存在即是合理[/fly]
2013-03-28 20:45
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
得分:0 
回复 6楼 azzbcc
嗯对。。。
还是很谢谢你。。
2013-03-29 10:30
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
得分:10 
#include<iostream.h>

struct Node
{
    int data;
    Node* next;
};

class stack
{
 public:
    stack()   //构造函数初始化类
    {
        //Node*head = new Node; 此处不能对head 重新定义的。
        head = new Node;
        head->data = 0;
        head->next = NULL;
    }
    void put( int item )
    {
        Node* pS = new Node;
        pS->data = item;
        pS->next = head->next;
     //     pS->next = head;
        head->next = pS;
    }
    int get()
    {
        int num = 0;
        num = head->next->data;
        head = head->next;
        return num;
    }
    ~stack()
    {
        delete head;
    }
private:
    Node* head;
};

void main()
{
    stack lala;

    lala.put(10);
    lala.put(12);
    lala.put(14);

    cout<<lala.get()<<endl;
    cout<<lala.get()<<endl;
    cout<<lala.get()<<endl;
}
2013-03-29 11:34
钟SX
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-3-28
得分:0 
回复 8楼 yctchxf
嗯,我知道了,我自己找到了。。
2013-03-29 21:57



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




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

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