Question

How do i write a destructor for this class? #ifndef NODE_H #define NODE_H #include <iostream> using...

How do i write a destructor for this class?

#ifndef NODE_H
#define NODE_H
#include <iostream>
using namespace std;

class Node{
public:
// Constructor
// Preconditions: None
// Postconditions: None
Node();

// Destructor
// Preconditions: None
// Postconditions: Frees dynamically allocated memory
~Node();

// Overloaded Constructor
// Preconditions: None
// Postconditions: Initializes member variable with given argument
Node(bool value);

// ReplaceValue - Replaces m_value with opposite (if true then false or if false then true)
// Preconditions: None
// Postconditions: m_value negated
void ReplaceValue();

// SetNext() - Sets m_next
// Preconditions: None
// Postconditions: m_next is set
void SetNext(Node* next);

// GetNext() - returns m_next
// Preconditions: None
// Postconditions: returns m_next
Node* GetNext();

// GetValue() - returns m_value
// Preconditions: None
// Postconditions: returns m_value
bool GetValue();

private:
Node* m_next; // Next Node in the list
bool m_value; // Shows value of node (1 or 0)
};

#endif

0 0
Add a comment Improve this question Transcribed image text
Answer #1

//Destructor definition
Node::~Node() {
//The statement to print a statement
cout << "Object is being deleted" << endl;
//delete the Node pointer using delete statement
delete m_next;
}

____________________________________________________________________________________________

Complete Program

//#ifndef NODE_H
//#define NODE_H
#include <iostream>
using namespace std;

class Node{
public:
// Constructor
// Preconditions: None
// Postconditions: None
Node();

// Destructor
// Preconditions: None
// Postconditions: Frees dynamically allocated memory
~Node();

// Overloaded Constructor
// Preconditions: None
// Postconditions: Initializes member variable with given argument
Node(bool value);

// ReplaceValue - Replaces m_value with opposite (if true then false or if false then true)
// Preconditions: None
// Postconditions: m_value negated
void ReplaceValue();

// SetNext() - Sets m_next
// Preconditions: None
// Postconditions: m_next is set
void SetNext(Node* next);

// GetNext() - returns m_next
// Preconditions: None
// Postconditions: returns m_next
Node* GetNext();

// GetValue() - returns m_value
// Preconditions: None
// Postconditions: returns m_value
bool GetValue();

private:
Node* m_next; // Next Node in the list
bool m_value; // Shows value of node (1 or 0)
};

//Destructor definition
Node::~Node() {
//The statement to print a statement
cout << "Object is being deleted" << endl;
//delete the Node pointer using delete statement
delete m_next;
}

__________________________________________________________________________________________________

Add a comment
Know the answer?
Add Answer to:
How do i write a destructor for this class? #ifndef NODE_H #define NODE_H #include <iostream> using...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • ~DecayList() – The destructor de-allocates any dynamically allocated memory. How do I implement ~decaylist()? #ifndef DECAYLIST_H...

    ~DecayList() – The destructor de-allocates any dynamically allocated memory. How do I implement ~decaylist()? #ifndef DECAYLIST_H #define DECAYLIST_H #include <iostream> #include "Node.h" using namespace std; const int NUM_CONSECUTIVE = 3; class DecayList{ public:   // Constructor   // Preconditions: None   // Postconditions: New list is created   DecayList(); and here is the node class.   // Destructor   // Preconditions: None   // Postconditions: Dynamically allocated memory freed   ~DecayList(); #include <iostream> #include "Node.h" using namespace std; Node::Node(){     m_next = NULL;     m_value = NULL; } Node::~Node(){     //delete...

  • // Node.h #ifndef NODE_H #define NODE_H class Node { private: int m_entry; Node *m_next; public: Node();...

    // Node.h #ifndef NODE_H #define NODE_H class Node { private: int m_entry; Node *m_next; public: Node(); Node(int entry); int getEntry() const; void setEntry(int entry); Node *getNext(); void setNext(Node *next); }; #endif // Node.cpp #include "Node.h" Node::Node() { m_entry = 0; m_next = nullptr; } Node::Node(int entry) { m_entry = entry; } int Node::getEntry() const { return m_entry; } void Node::setEntry(int entry) { m_entry = entry; } Node *Node::getNext() { return m_next; } void Node::setNext(Node *next) { m_next = next; }...

  • This is a c++ class utilizing class templates and linked lists. I need to implement the...

    This is a c++ class utilizing class templates and linked lists. I need to implement the following member function(s) to List.cpp. Node.hpp/cpp should be fine but if you feel like there needs to be a change for compilation or testing, feel free to do so but make sure to comment on why it was done. /** @pre assumes position is valid, if position is > item_count_ it returns an empty List, also assumes that operators <= and >= are defined...

  • This is a c++ class utilizing class templates and linked lists and Nodes. I need to...

    This is a c++ class utilizing class templates and linked lists and Nodes. I need to implement the following member function(s) to LinkedBag.cpp. Node.hpp/cpp should be fine but if you feel like there needs to be a change for compilation or testing, feel free to do so but make sure to comment on why it was done. In this case, I need to join the original items with the user items(a_bag). So if the original has {1,2,3} and a_bag has...

  • #ifndef PROCESSREQUESTRECORD_CLASS #define PROCESSREQUESTRECORD_CLASS #include <iostream> #include <string> using namespace std; class procReqRec { public: //...

    #ifndef PROCESSREQUESTRECORD_CLASS #define PROCESSREQUESTRECORD_CLASS #include <iostream> #include <string> using namespace std; class procReqRec { public: // default constructor procReqRec() {} // constructor procReqRec(const string& nm, int p); // access functions int getPriority(); string getName(); // update functions void setPriority(int p); void setName(const string& nm); // for maintenance of a minimum priority queue friend bool operator< (const procReqRec& left, const procReqRec& right); // output a process request record in the format // name: priority friend ostream& operator<< (ostream& ostr, const procReqRec&...

  • C++ Error. I'm having trouble with a pointer. I keep getting the error "Thread 1: EXC_BAD_ACCESS...

    C++ Error. I'm having trouble with a pointer. I keep getting the error "Thread 1: EXC_BAD_ACCESS (code=1, address=0x18)" The objective of the assignment is to revise the public method add in class template LinkedBag so that the new node is inserted at the end of the linked chain instead of at the beginning. This is the code I have: linkedBag-driver.cpp BagInterface.hpp LinkedBag.hpp Node.hpp int main) LinkedBag<string> bag; cout << "Testing array-based Set:" << endl; cout << "The initial bag is...

  • C++: I need implement this code using Double Linked List using the cosiderations 1. head point...

    C++: I need implement this code using Double Linked List using the cosiderations 1. head point to null in an empty list 2. There is not need of a tail pointer /*This class implements the singly linked list using templates Each list has two attributes:    -head: first node in the list    -tail: last node in the list #include "circDLLNode.h" template class { public:    //Default constructor: creates an empty list    ();    //Destructor: deallocate memory    ~();  ...

  • I'm having trouble getting this program to compile and run. It is in C++ Language and...

    I'm having trouble getting this program to compile and run. It is in C++ Language and being run with CodeBlocks. Problem Statement: create and manage a linked list. Program will loop displaying a menu of user operations concerning the management of a linked list. Included will be:       H create link at head       R remove link at head       T create link at tail       K remove link at tail       I remove link at ID          S search...

  • // Name.h #ifndef __NAME_H__ #define __NAME_H__ #include <iostream> #include <string> using namespace std; #define MAXLENGTH 12...

    // Name.h #ifndef __NAME_H__ #define __NAME_H__ #include <iostream> #include <string> using namespace std; #define MAXLENGTH 12 #define NAME_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-'" namespace Errors {     struct InvalidName { }; } class Name { public:     Name        ( string first_name = "", string last_name = "");     string first() const;     string last() const;     void   set_first( string fname );     void   set_last( string lname);     friend ostream& operator<< ( ostream & os, Name name );     friend bool operator== (Name name1, Name...

  • // Header code for stack // requesting to create source code using C++ #ifndef Stack_h #define...

    // Header code for stack // requesting to create source code using C++ #ifndef Stack_h #define Stack_h #include <stdio.h> #include <string> #include <iostream> using namespace std; class Stack { public: Stack(); ~Stack(); bool empty(); string top(); void push(const string &val); void pop(); void display(ostream &out); private: class Node { public: string word; Node *next; }; Node *tos; }; #endif Header file provided above. PLS create source code for functions declared in the header. If changes are need no make in...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT