I've created an object and a Repository for it. When I try inserting the object into the Repository (with the insert function i've created) I get compile error.
The Class I'm trying to insert into Repository
class Payment{
private:
    int day;
    int amount;
    char *type;
public:
    Payment();
    Payment(int day, int amount, char *type);
    Payment(const Payment &p);
    ~Payment();
    //getters
    int getDay()const;
    int getAmount()const;
    char* getType()const;
    //setters
    void setDay(int day);
    void setAmount(int amount);
    void setType(char* type);
    //operator
    Payment& operator=(const Payment& other);
    friend ostream& operator<<(ostream &os,const Payment &obj);
};
//copy constructor
Payment::Payment(const Payment & p){
    this->day = p.day;
    this->amount = p.amount;
    if(this->type!=NULL)
        delete[] this->type;
    this->type = new char[strlen(p.type)+1];
    strcpy_s(this->type, strlen(p.type) + 1, p.type);
}
//assignment operator
Payment& Payment::operator=(const Payment &other) {
    this->day = other.day;
    this->amount = other.amount;
    this->type = new char[strlen(other.type) + 1];
    strcpy_s(this->type, strlen(other.type) + 1, other.type);
    return *this;
}
//destructor
Payment::~Payment(){
    this->day = 0;
    this->amount = 0;
    if (this->type != NULL) {
        delete[]this -> type;
        this->type = NULL;
    }
}
//Repository header
class Repository{
private:
    vector<Payment> list;
public:
    Repository();
    int getLength();
    void insert(const Payment& obj);
    void remove(int position);
};
//Repository cpp
Repository::Repository(){
    this->list.reserve(10);
}
//return the size of the list
int Repository::getLength() {
    return this->list.size();
}
//add payment to list
void Repository::insert(const Payment &obj) {
    this->list.emplace_back(obj);
}
//remove payment from list
void Repository::remove(int position) {
    this->list.erase(this->list.begin() + position);
}
In main function I have
char c[] = "some characters";
Payment pay = Payment(7,9,c);
Repository rep = Repository();
rep.insert(pay);
When I run the program I get the error " Expression: _CrtlsValidHeapPointer(block) "
 
    