0

I Expect to get the name which I sent to the "class stud" which has a class variable CHAR name The issue appears specifically at this line this->name->set_name_send(OBJ.name->get_name()); and I get this error " -- invalid conversion from 'const char*' to 'char*' -- " Any suggestions? enter image description here

If I make the function set_name as a const and delete the pointers in the destructor code runs but return value is garbage and it has to be 0

Maybe the class *name doesn't have to be pointer ?

All pointer and in OOP


#include <iostream>
#include <cstdlib>
#include <cstring>
#include <iomanip>

using namespace std;

class CHAR
{
    char *name;
    public:
        CHAR(char *mes = "\0")  {(this)->name = new char[100]; strcpy((this)->name,mes);}

        CHAR(const  CHAR&OBJ) { (this)->name = new char[100]; strcpy((this)->name,OBJ.name); }

        ~CHAR(){cout<<"CHAR Destructor!"<<endl; delete name;}

        void set_name(char *mes){(this)->name = new char[100]; strcpy((this)->name,mes);}

        const char* get_name() const {return (this)->name;}
};

class stud
{
    CHAR *name;
    public:
        stud(char *mes)
            {
                this->name->set_name(mes);
            }

        stud( stud&OBJ) 
            {
                this->name->set_name(OBJ.name->get_name()); //!!!!!!!!!!!!!!! issue HERE!!
            }

        ~stud(){cout<<"Destructor!"<<endl;}
        const char* get_name() const {return this->name->get_name();}
};
int main()
{
    stud S("John");
    stud A(S);
    cout<<"Name: "<<A.get_name()<<endl;
}
Ghips
  • 1
  • 1

0 Answers0