Ошибки C2440 / E0513 [дубликат]

196
15 июля 2022, 21:20
На этот вопрос уже дан ответ здесь:
E0144 значение типа "const char *" нельзя использовать для инициализации сущности типа "char *" (1 ответ)
Закрыт 1 год назад.

Учу С++. Дошел до классов. Не получается запустить код: выбивает ошибки C2440 и E0513. Проблему выдает в строке 16 Test::Test() {age = 0; name="";} Если необходимо, то вот целый код:

#include <iostream>
#include <cstdlib>
using namespace std;
class Test 
{
private:
    int age;
    char* name;
public:
    Test();
    void printDATA();
    void inputDATA();
};
Test::Test() {age = 0; name="";}
void Test::printDATA()
{
    cout << "Age: " << age << " Name: " << name;
}
void Test::inputDATA()
{
    cout << "Input ur age: " << endl;
    cin >> age;
    cout << "Input ur name: " << endl;
    cin.getline(name, 256, ';');
}
int main()
{
    setlocale (LC_ALL, "rus");
    Test T;
    cout << "Тестовая программа" << endl;
    T.inputDATA();
    T.printDATA();
    system("pause");
    return 0;
}
Answer 1

У вас в name тип char*, а литералы строк это const char*.

Для строк лучше используйте тип string.

Я подправил в двух местах код, чтобы с string работало.

Попробуйте:

#include <iostream>
#include <cstdlib>
using namespace std;
class Test 
{
private:
    int age;
    string name;
//  ^^^^^^^
public:
    Test();
    void printDATA();
    void inputDATA();
};
Test::Test() {age = 0; name="";}
void Test::printDATA()
{
    cout << "Age: " << age << " Name: " << name;
}
void Test::inputDATA()
{
    cout << "Input ur age: " << endl;
    cin >> age;
    cout << "Input ur name: " << endl;
    getline(std::cin, name, ';');
//  ^^^^^^^
    // cin >> name;
}
int main()
{
    setlocale (LC_ALL, "rus");
    Test T;
    cout << "Тестовая программа" << endl;
    T.inputDATA();
    T.printDATA();
    system("pause");
    return 0;
}
Answer 2
char* name;
const char* name;

Ну или разбирайся с выделением памяти и strcpy.

READ ALSO
Есть ли конструктор у базовых типов?

Есть ли конструктор у базовых типов?

Есть ли конструктор у базовых типов, например int?

229
Как получить больше данных на onion-сайте в TOR?

Как получить больше данных на onion-сайте в TOR?

Создал onion-сайт, но переменная $_SERVER не отображает ничего полезногоМне кажется, можно как-то получить информацию о цепочке, её IP и т

206
Регулярное выражение для валидации имени пользователя

Регулярное выражение для валидации имени пользователя

Подскажите, пожалуйста, как должно выглядеть регулярное выражение для проверки имени пользователя, которое не должно начинаться с цифры...

217
Как сменить формат даты при отправке ajax?

Как сменить формат даты при отправке ajax?

Всем привет! Как при отправке ajax запроса, либо при его получении обработчиком изменить формат даты? input type="date" принимает дату в формате...

206