I have been working on a project for my computer science class and have encountered an issue with the code working. I am shown no error except when I try to compile and I get an error that reads:
Exception thrown: write access violation. _Left was 0xCCCCCCCC.
The purpose of my project is to take a list of names from an external file, read them into an array, sort said array and then output the sorted list all while using a class for the code. Here is a copy of my code and I would like to extend my gratitude to whoever can help me through my issue:
**Header File**
#include <iostream>
using namespace std;
class person
{
public:
    person();
    bool get(ifstream&);
    void put(ofstream&);
private:
    int capacity = 0;
    string first_name[CAPACITY];
    string last_name[CAPACITY];
    int age[CAPACITY];
};```
**Header function definitions cpp file**
#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
const int CAPACITY=20;
using namespace std;
#include "Person.h"
//Names constructor
//Postcondition both first name and last name initialized to zero
person::person()
{
    first_name[CAPACITY] = "";
    last_name[CAPACITY] = "";
    age[CAPACITY]=0;
}
bool person::get(ifstream& in)
{
    in >> first_name[CAPACITY] >> last_name[CAPACITY] >> age[CAPACITY];
    return(in.good());
}
void person::put(ofstream &out)
{
    out << first_name[CAPACITY] << last_name[CAPACITY] << age[CAPACITY];
}
**cpp file which holds main**
#include<iostream>
#include<cstdlib>
#include<fstream>
#include<string>
const int CAPACITY = 20;
using namespace std;
#include "Person.h"
void pop(string *xp, string *yp);
void sort(string name[CAPACITY], int count);
int main()
{
    class person names[CAPACITY];
    ifstream infile;
    ofstream outfile;
    string filename;
    string name[CAPACITY];
    int n = 0;
    cout << "Enter the file name you wish to open" << endl;
    cin >> filename;
    infile.open(filename + ".txt");
    outfile.open("Person_New.txt");
    if (infile.fail())
    {
        cout << "The file requested did not open" << endl;
        exit(1);
    }
    while (!infile.eof())
    {
        names[n].get(infile);
        n++;
    }
    sort(name, CAPACITY);
    for (int i = 0; i < CAPACITY; i++)
    {
        names[i].put(outfile);
    }
    cout << "The file has been created" << endl;
    infile.close();
}
void pop(string *xp, string *yp)
{
    string temp = *xp;
    *xp = *yp;
    *yp = temp;
}
void sort(string name[CAPACITY], int count)
{
    int i, j;
    for (i = 0; i < count - 1; i++)
    {
        for (j = 0; j < count - i - 1; j++)
        {
            if (name[j] > name[j + 1])
            {
                pop(&name[j], &name[j + 1]);
            }
        }
    }
} 
Once again Thank you for any support
 
    