A homework problem about C++ (Pointer)
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;
}