Help. giúp mình sửa code này với làm hoài vẫn bị lỗi

T

trangnguyen294

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Mã:
#include<iostream.h>
struct Node {
	int entry;
	Node *next;
	Node();
};
class Stack {
public:
	Stack();
	~Stack();
	void PrintAll();
private:
	Stack& operator =(const Stack &s);
	Node *top;
	void themPhantu(int data);
	void Del();
	int count;
	istream& operator >> (istream& vao,Stack& s);
	ostream& operator << (ostream& ra,Stack& s);
};
void Stack :: themPhantu(int item){
	Node* link = new Node();
	link->entry = item;
	link->next =NULL;
	link->next = top;
	top = link;
	count++;
}
void Stack :: Del(){

	Node* h;
	while(top!=NULL)
	{
		h= top;
		top = top->next;
		delete h;
		count--;
	}
}
void Stack :: PrintAll(){
	while(top!=NULL)
	{
		cout<<top->entry;
		top=top->next;
	}
}

Stack :: Stack(){
	top = NULL;
	count = 0;
}
Stack::~Stack(){
	Del();
}

Stack&Stack :: operator >> (istream& vao,Stack& s)
{
	int entry;
	vao>>entry;
	s.themPhantu(entry);
	return vao;
}
Stack&Stack :: operator <<(istream& ra,Stack& s)
{
	s.PrintAll(ra);
	return ra;
}
Stack&Stack :: operator =(const Stack &s){
	if(top!=NULL)
		Del();
	Node* p = s.top;
	Stack t;
	while(p!=NULL)
	{
		t.themPhantu(p->entry);
		p=p->next;
	}
	return t;
}
void main(){
	int data;
	Stack s;
	s.themPhantu(data);
	s.Del();
}
 
Last edited by a moderator:
L

lamdetien36

Lần sau cho vào tag code nhé :D
Sửa lại thế này thì chạy OK trên Codeblocks, còn để chạy trên Borland / Turbo C++ thì sửa lại cái #include và bỏ using namespace std là được :D
PHP:
#include <iostream>
#include <fstream>

using namespace std;

struct Node {
    int entry;
    Node *next;
    Node() {
        entry = 0;
    }
};

class Stack {
    private:
        Node *top;
        int count;
    public:
        Stack();
        ~Stack();
        void Del();
        void themPhantu(int data);
        void PrintAll(ostream&);
        Stack& operator = (const Stack &s);
        friend istream& operator >> (istream& vao, Stack& s) {
            int entry;
            vao >> entry;
            s.themPhantu(entry);
            return vao;
        }
        friend ostream& operator << (ostream& ra, Stack& s) {
            s.PrintAll(ra);
            return ra;
        }
};

void Stack :: themPhantu(int item) {
    Node* link = new Node();
    link->entry = item;
    link->next = NULL;
    link->next = top;
    top = link;
    count++;
}
void Stack :: Del() {
    Node* h;
    while(top != NULL) {
        h = top;
        top = top->next;
        delete h;
        count--;
    }
}
void Stack :: PrintAll(ostream &ra) {
    while(top != NULL)
    {
        ra << top->entry;
        top = top->next;
    }
}

Stack :: Stack() {
    top = NULL;
    count = 0;
}
Stack::~Stack() {
    Del();
}
Stack& Stack :: operator =(const Stack &s) {
    if(top != NULL)
        Del();
    Node* p = s.top;
    Stack t;
    while(p != NULL) {
        t.themPhantu(p->entry);
        p = p->next;
    }
    return t;
}

int main() {
    int data;
    Stack s;
    cin >> data;
    s.themPhantu(data);
    s.Del();
    return 0;
}
 
L

lamdetien36

Mà mình cũng nói thật nhé :) Bạn học kỹ lại lý thuyết phần lý thuyết huớng đối tượng đi, chứ các phương thức quan trọng của class mà set private, toán tử >> và << mà không đặt friend :(
 
Top Bottom