133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 562
1

Значение типа "const char *" нельзя использовать для инициализации сущности "char*"

08.06.2018, 16:11. Показов 5133. Ответов 6
Метки нет (Все метки)

Книга Пратта, Лекции и Упражнения. 750 страница, листинг 14.8.
В объявлении производного класса, имеется вот такое:
C++
1
2
3
4
5
protected:
    enum { other, alto, contralto, soprano, bass, baritone, tenor };
    enum { Vtypes = 7 };
private:
    static char *pv[Vtypes];
А в объявлении методов по книге, идет след строчка на которую собственно VS и ругается ошибкой в заголовке:
C++
1
2
char * Singer::pv[] = { "other", "alto", "contralto",
"soprano", "bass", "baritone", "tenor" };
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2018, 16:11
Ответы с готовыми решениями:

Ошибка "значение типа "const char [81]" нельзя использовать для инициализации сущности типа "const unsigned char [61]"
Прошу помощи, так как раньше прога работала, сейчас решил вернуться и выдает ошибку: #pragma once...

Ошибка: значение типа "const char *" нельзя использовать для инициализации сущности типа "char *" (строка 8)
#include <iostream> using namespace std; int main() { int number = 0; char *result; char...

Ошибка: "const char[78]" нельзя использовать для инициализации сущности типа char[12]
class Goroskop { private: char name_Zodiak; public: char name_Zodiak = {"Aries" "Taurus"...

Как исправить ошибку: Значение типа "const char *" нельзя присвоить сущности типа "char *"?
#include <conio.h> #include <iostream> using namespace std; struct Car_Specifications {...

6
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
08.06.2018, 16:16 2
const добавь.
0
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 562
08.06.2018, 16:18  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
const добавь.
Cюда? Если да, то уже пробовал. Ошибка: объявление несовместимо с "char *Singer:v[7]"
C++
1
2
char * Singer::pv[] = { "other", "alto", "contralto",
"soprano", "bass", "baritone", "tenor" };
Добавлено через 56 секунд
Форум сам смайлик там поставил изза :: p если что
0
279 / 251 / 209
Регистрация: 14.11.2016
Сообщений: 949
08.06.2018, 16:19 4
C++
1
2
3
4
5
6
7
8
9
10
class Singer
{
protected:
    enum { other, alto, contralto, soprano, bass, baritone, tenor };
    enum { Vtypes = 7 };
private:
    static const char *pv[Vtypes];
};
 
const char * Singer::pv[] { "other", "alto", "contralto", "soprano", "bass", "baritone", "tenor" };
1
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 562
08.06.2018, 16:20  [ТС] 5
Цитата Сообщение от anapshy Посмотреть сообщение
static const char *pv[Vtypes];
Сделал, спасибо. Почему ВС не хочет по книге?
0
279 / 251 / 209
Регистрация: 14.11.2016
Сообщений: 949
08.06.2018, 16:22 6
Bring, эти строки константные, если где-то их так прописываешь, не выделяя памяти под них явно, то они должны быть const char*. В каждой книге есть ошибки.
0
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
08.06.2018, 16:33 7
От компилятора, наверное, зависит. Не все проверяли, или это в настройках задаётся.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2018, 16:33
Помогаю со студенческими работами здесь

Ошибка: значение типа "const char*" нельзя присвоить сущности типа "char*"
Появилось в 17 студии, как это исправить?

Значение типа "const char" нельзя присвоить сущности типа "char*"
Добрый день. Разбираю классы и столкнулся вот с чем. В одной версии visual studio данный код...

Error: значение типа "const char" нельзя присвоить сущности типа "double"
#include <iostream> #include <iomanip>// using namespace std; void main(void) { const int...

Значение типа "void *" нельзя использовать для инициализации сущности типа "int *"
#include <pthread.h> #include <semaphore.h> #include <stdio.h> #include <Windows.h> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru