ok, foi mal o link das imagens, estou no trabalho agora mas assim que chegar em casa vou editar esse post botando o código! Primeira postagem aqui, desculpa o erro de noob heheh.
Estou tentando fazer uma pilha.
Ai vai todos os codigos:
Dado.h
#ifndef _DADO_H_
#define _DADO_H_
class Dado {
int a;
public:
Dado () {a = 0;};
~Dado () {};
int getDado(){return a;};
void setDado(int b){a=b;};
};
#endif
Node.h
#ifndef _NODE_H_
#define _NODE_H_
#include "Dado.h"
class Node {
private:
Dado d;
public:
Node * Next;
Node() {};
~Node() {};
static Node * montaNo (Dado _D);
static Dado desmontaNo (Node * _P);
void setDado (Dado _pD);
void setNode (Node *_ptr_Next);
};
#endif
Node.cpp
#include "Node.h"
Node * Node::montaNo (Dado _D) {
Node * P = new Node;
if (P) {
P -> d = _D;
P -> Next = NULL;
}
return P;
}
Dado Node::desmontaNo (Node * _P) {
Dado D = _P -> d;
delete _P;
return D;
}
/*
void Node::setDado (Dado _pD) {
d = _pD;
}
void Node::setNode (Node *_ptr_Next) {
Node::Next = _ptr_Next;
}*/
Stack.h
#ifndef _STACK_H_
#define _STACK_H_
#include "Node.h"
#include "Dado.h"
#include <iostream>
class Stack {
private:
Node * TOP;
public:
bool Push(Dado D);
Dado * Pop();
Stack() {TOP = NULL; };
~Stack() {};
//bool TaVazia(int *Top);
//void setTop(int *pTop);
};
#endif
Stack.cpp
#include "Stack.h"
bool Stack::Push (Dado D) {
Node * P = Node::montaNo(D);
if (P) { // if (P != NULL); if (P != 0)
P -> Next = TOP;
TOP = P;
return true;
}
return false;
}
Dado * Stack::Pop () {
if (TOP) {
Node * P = TOP;
TOP = P -> Next; //TOP -> Next;
Dado * D = new Dado;
* D = Node::desmontaNo(P);
return D;
}
return NULL;
}
Main.cpp
#include <iostream>
#include "Stack.h"
using namespace std;
int main () {
int a;
cout << "Digite os dados: \n";
cin >> a;
Dado A;
A.setDado(a);
Stack Pilha;
cout<<A.getDado()<<endl;
Pilha.Push(A);
return 0;
}
E por ultimo o terminal, o erro e o comando que usei :
rafael@rafael-HP:~/prog/Pilha$ g++ main.cpp -o main
/tmp/ccflRrpA.o: In function `main':
main.cpp:(.text+0xa2): undefined reference to `Stack::Push(Dado)'
collect2: ld returned 1 exit status
Obs, usando o GCC acontece isso
rafael@rafael-HP:~/prog/Pilha$ gcc main.cpp -o main
/tmp/cckWDduQ.o: In function `main':
main.cpp:(.text+0x15): undefined reference to `std::cout'
main.cpp:(.text+0x1a): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
main.cpp:(.text+0x29): undefined reference to `std::cin'
main.cpp:(.text+0x2e): undefined reference to `std::basic_istream<char, std::char_traits<char> >::operator>>(int&)'
main.cpp:(.text+0x71): undefined reference to `std::cout'
main.cpp:(.text+0x76): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(int)'
main.cpp:(.text+0x7e): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
main.cpp:(.text+0x86): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
main.cpp:(.text+0xa2): undefined reference to `Stack::Push(Dado)'
/tmp/cckWDduQ.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x127): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x12c): undefined reference to `std::ios_base::Init::~Init()'
/tmp/cckWDduQ.o:(.eh_frame+0xeb): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status