#include using namespace std; #include "stack.hxx" int Node::get_value() { return value; } int Node::decrement_and_get_value() { decrement(); return value; } void Node::increment() { value++; } void Node::decrement() { value--; } Node::Node(int _value) : value(_value) { cout << "constructing node with _value: " << _value << endl; //value = _value; prev = NULL; } Node::Node(Node &other) { cout << "calling copy constructor here!" << endl; value = other.value; prev = other.prev; } Node::~Node() { cout << "calling destructor on node with value: " << value << endl; } void increment_node(Node node) { node.increment(); } int main(int argc, char **argv) { int n = 5; cout << "n: " << endl; int m(5); cout << "m: " << endl; cout << "making n1" << endl; Node n1(11); cout << "setting n2 = n1" << endl; Node n2 = n1; cout << "set n2 = n1" << endl; Node *node_pointer = new Node(5); cout << "node_pointer->value: " << node_pointer->get_value() << endl; cout << "node_pointer->value: " << (*node_pointer).get_value() << endl; cout << "before block" << endl; { Node node_object(3); cout << "node_object.value: " << node_object.get_value() << endl; node_object.increment(); node_object.increment(); increment_node(node_object); cout << "node_object.value: " << node_object.get_value() << endl; } cout << "after block" << endl; delete node_pointer; }