Modify this program to use namespaces and separate compilation. using c++ -Put the class definition and other function declarations Programming Projects 517 in one file. -Place the implementations in a separate file. -Distribute the namespace definition across the two files. -Place the demonstration program in a third file. -To provide access to names in namespaces, you may use local using declarations such as using std::cout; or use local using directives such as using namespace std; inside a block, or qualify names using the names of namespaces, such as std::cout. -You may not use global namespace directives such as the following which are not in a block and apply to the entire file: using namespace std;"

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter17: Linked Lists
Section: Chapter Questions
Problem 21SA
icon
Related questions
Question

Modify this program to use namespaces and separate compilation. using c++
-Put the class definition and other function declarations Programming Projects 517 in one file.
-Place the implementations in a separate file.
-Distribute the namespace definition across the two files.
-Place the demonstration program in a third file.
-To provide access to names in namespaces, you may use local using declarations such as using std::cout; or use local using directives such as using namespace std; inside a block, or qualify names using the names of namespaces, such as std::cout.
-You may not use global namespace directives such as the following which are not in a block and apply to the entire file: using namespace std;"

 

 

code

#include <iostream>
#include<string>
using namespace std;

class PFArrayD
{
public:
PFArrayD( );
//Initializes with a capacity of 50.
PFArrayD(int capacityValue);
PFArrayD(const PFArrayD& pfaObject);
void addElement(double element);
//Precondition: The array is not full.
//Postcondition: The element has been added.
bool full( ) const { return (capacity == used); }
//Returns true if the array is full, false otherwise.
int getCapacity( ) const { return capacity; }
int getNumberUsed( ) const { return used; }
void emptyArray( ){ used = 0; }
//Empties the array.
double& operator[](int index);
//Read and change access to elements 0 through numberUsed - 1.
PFArrayD& operator =(const PFArrayD& rightSide);
~PFArrayD( );
private:
double *a; //For an array of doubles
int capacity; //For the size of the array
int used; //For the number of array positions currently in use
};
PFArrayD::PFArrayD( ) :capacity(50), used(0)
{
a = new double[capacity];
}
PFArrayD::PFArrayD(int size) :capacity(size), used(0)
{
a = new double[capacity];
}
PFArrayD::PFArrayD(const PFArrayD& pfaObject)
:capacity(pfaObject.getCapacity( )), used(pfaObject.getNumberUsed( ))
{
a = new double[capacity];
for (int i = 0; i < used; i++)
a[i] = pfaObject.a[i];
}
void PFArrayD::addElement(double element)
{
if (used >= capacity)
{
cout << "Attempt to exceed capacity in PFArrayD.\n";
exit(0);
}
a[used] = element;
used++;
}

double& PFArrayD::operator[](int index)
{
if (index >= used)
{
cout << "Illegal index in PFArrayD.\n";
exit(0);
}
}
PFArrayD& PFArrayD::operator =(const PFArrayD& rightSide)
{
if (capacity != rightSide.capacity)
{
delete [] a;
a = new double[rightSide.capacity];
}
capacity = rightSide.capacity;
used = rightSide.used;
for (int i = 0; i < used; i++)
a[i] = rightSide.a[i];
return *this;
}
PFArrayD::~PFArrayD( )
{
delete[] a;
}

//PROGRAM TO TEST PFArrayD
#include <iostream>
using namespace std;
class PFArrayD
{
<The rest of the class definition is the same as in Display 10.10.>
};
void testPFArrayD( );
//Conducts one test of the class PFArrayD.
int main( )
{
cout << "This program tests the class PFArrayD.\n";
char ans;
do
{
testPFArrayD( );
cout << "Test again? (y/n) ";
cin >> ans;
} while ((ans == 'y') || (ans == 'Y'));
return 0;
}
void testPFArrayD( )
{
int cap;
cout << "Enter capacity of this super array: ";
cin >> cap;
PFArrayD temp(cap);
cout << "Enter up to " << cap << " nonnegative numbers.\n";
cout << "Place a negative number at the end.\n";
double next;
cin >> next;
while ((next >= 0) && (!temp.full( )))
{
temp.addElement(next);
cin >> next;
}
cout << "You entered the following "
<< temp.getNumberUsed( ) << " numbers:\n";
int index;
int count = temp.getNumberUsed( );
for (index = 0; index < count; index++)
cout << temp[index] << " ";
cout << endl;
cout << "(plus a sentinel value.)\n";
}

Expert Solution
steps

Step by step

Solved in 4 steps with 1 images

Blurred answer
Knowledge Booster
Functions
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning