Преобразование типов символов несовместимо - PullRequest
0 голосов
/ 13 февраля 2020

Программа, основанная на конструкторах

    Error -Incompatible  Type conversion from char to char[100]

Код -

    #include<iostream>
    using namespace std;
    class demo
    {
    public:
        char name[100];
//This is where char is declared
        int marks;

        demo()
        {
            marks = 0;
            name = "Pro"; 
//assigning value to the char
            cout<<"Working"<<endl;
        }

        void input()
        {
            cout<<"Enter Name and Marks"<<endl;
            cin>>name>>marks;
        }
        void output()
        {
            cout<<name<<"\t"<<marks<<endl;
        }
    };

Я попытался ввести имя в «имя» и «имя», также я попытался использовать приведение типа (char), но это не похоже на работу

int main()
        {
            demo Obj1, Obj2;
    //creating objects
            Obj1.output();
            Obj2.input();
            Obj2.output();
            return 0;
        }

1 Ответ

1 голос
/ 13 февраля 2020

Массивы не имеют оператора назначения копирования.

Так что это утверждение в конструкторе

name = "Pro"; 

неверно.

Вы должны написать

#include <cstring>

//...

std::strcpy( name, "Pro" );

Или более простой способ - просто переписать конструктор, как

    demo() : name { "Pro" }, mark( 1 )
    {
        cout<<"Working"<<endl;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...