Define a class named PositiveInteger to represent positive i
Define a class named PositiveInteger to represent positive integer. Your class should have the
following:
1. A default constructor to initialize the data field to zero.
2. A non default constructor to initialize a specified value.
3. An accessor and a mutator function
4. A getLength( ) function to return the length of the integer.
5. A data field to store the integer value.
6. Overload the subscript operator [] such that the index i will return the digit in position i, with
i=0 being the position of least significant digit. The operator should return -1 if the index is
out of bound. For example, if num is an object of PositiveInteger and the integer represented is
123, then num[0] will return 3, num[1] will return 2, num[2] will return 1 and num[3] is out of
bound will return -1. Negative index value such as num[-1] will also return -1.
Use the main method below to test your program:
int main()
{
PositiveInteger num;
int intNum, len;
cout << \"Please enter an integer: \";
cin >> intNum;
num.setInt(intNum);
cout << \"getInt returns: \" << num.getInt() << endl;
len = num.getLength();
cout<<\"Length of integer is: \"<< len< cout << endl;
for (int i = 0; i < len; i++)
{
cout << num[i] << endl;
}
cout << endl;
cout << num[len] << endl;
cout << num[-1] << endl;
return 0;
}
Sample output 1:
Please enter an integer: 0
getInt returns: 0
Length of integer is: 1
0
Illegal index value: 1
-1
Illegal index value: -1
-1
Sample output 2:
Please enter an integer: 98765
getInt returns: 98765
Length of integer is: 5
5
6
7
8
9
Illegal index value: 5
-1
Illegal index value: -1
-1
HI,
I need help to complete this QUESTION . Please provide me an answer under C++ object oriented way. java or another programming language can not use . I need answer under C++ language. Please need as soon as possible. Please follow all the assignment instruction
Solution
#include<iostream>
#include<cmath>
using namespace std;
class PositiveInteger
{
int IntNum;
public:
PositiveInteger()
{
IntNum = 0;
}
void setInt(int num)
{
IntNum = num;
}
int getInt()
{
return IntNum;
}
int getLength()
{
int i=1,cnt=0;
if( IntNum == 0 )
return 1;
while( IntNum /i > 0 )
{
i*=10;
cnt++;
}
return cnt;
}
int operator[]( int n)
{
int len = getLength();
static int num=IntNum;
int rem=0;
if( n >= len )
{
cout<<\"Illegal index value: \"<<n<<endl;
return -1;
}
if( n < 0 )
{
cout<<\"Illegal index value: \"<<n<<endl;
return -1;
}
rem = num %10;
num = num / 10;
return rem;
}
};
int main()
{
PositiveInteger num;
int intNum, len;
cout << \"Please enter an integer: \";
cin >> intNum;
num.setInt(intNum);
cout << \"getInt returns: \" << num.getInt() << endl;
len = num.getLength();
cout<<\"Length of integer is: \"<< len<<endl;
cout << endl;
for (int i = 0; i < len; i++)
{
cout << num[i] << endl;
}
cout << endl;
cout << num[len] << endl;
cout << num[-1] << endl;
return 0;
}


