I have a problem about how to use a pointer to modify this program.
At first my adviser asked me to change "int value;" to "int* value;" in case to make the vaule be reference. However, I don't really understand how to refactor the program structure in case to make it be a pointer.
Also, • I must make my class “pointer safe” by adding the following
o Copy constructor
o Destructor
Does someone can give me some advices? I am not going to get an exactly program by u guys, but can u guys give me some good ideas.
I would really appericate about it.;
Code:// Integer.h #ifndef INTEGER_H #define INTEGER_H class Integer { public: Integer() {value = 0;} Integer( int intVal ); int getInteger() const; void setInteger( int newInteger ); Integer& operator=( const Integer& rhInteger ); private: int value; // This line will be removed… // int* value; // and replaced with this one… // NOTE: You will only use ONE attribute }; #endif // Integer.cpp #include “integer.h” Integer::Integer( int intVal ) { value = intVal; } int Integer::getInteger() const { return value; } void Integer::setInteger( int newInteger ) { value = newInteger; } Integer& Integer::operator=( const Integer& rhInt ) { value = rhInt.value; return *this; } // IntegerTest.cpp #include <iostream> #include <cstdlib> #include “integer.h” using namespace std; void displayInteger( char* str, Integer intObj ) { cout << str << “ is “ << intObj.getInteger() << endl; } int main( int argc, char* argv[] ) { Integer intVal1; Integer intVal2(10); displayInteger( “intVal1”, intVal1 ); displayInteger( “intVal2”, intVal2 ); intVal1 = intVal2; displayInteger( “intVal1”, intVal1 ); return EXIT_SUCCESS; }