Форум программистов, компьютерный форум CyberForum.ru

Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.80
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
02.01.2013, 19:37     Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) #1
Почему компилятор на это матерится?
C++
1
ObjA.Show("A");
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class kooClass {
    int x,y,z;
public:
    kooClass(){x=y=z=0; }
    kooClass(int a,int b,int c) { x=a;y=b;z=c;}
    kooClass operator+(kooClass);
    kooClass operator=(kooClass);
    void Show(char*);
};
 
kooClass kooClass::operator+(kooClass obj){
    kooClass tmp;
    tmp.x=x+obj.x;
    tmp.y=y+obj.y;
    tmp.z=z+obj.z;
    
    return tmp;
}
 
kooClass kooClass::operator=(kooClass obj){
    x=obj.x;
    y=obj.y;
    z=obj.z;
    
    return *this;
}
 
void kooClass::Show(char*s){
    cout<<"<"<<s<<">";
    cout<<"\t\tX = "<<x<<",Y = "<<y<<",Z = "<<z<<endl;
}
 
int main()
{
    kooClass ObjA(1,2,3),ObjB(10,10,10),ObjC;
    
    ObjA.Show("A");
    ObjB.Show("B");
    
    ObjC=ObjA+ObjB;
    ObjC.Show("C=A+B");
    
    ObjC=ObjA+ObjB+ObjC;
    ObjC.Show("C=A+B+C");
    
    ObjC=ObjB=ObjA;
    ObjC.Show("B=A");
    ObjC.Show("C=B");
    
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2013, 19:37     Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings])
Посмотрите здесь:

Как избавиться от "deprecated conversion from string constant to ‘char*’" C++
invalid conversion from ‘char’ to ‘const char*’ C++
C++ ошибка:20 invalid conversion from `char*' to `char'
invalid conversion from 'const char*' to 'char' C++
Ошибка invalid conversion from 'const char*' to 'char*' C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
02.01.2013, 21:09     Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) #21
tokar2, в этом коде оператор + неправильно определен. Он не должен менять значение операнда.

Т.е. вместо
C++
1
x=x+obj.x;
Нужно:
C++
1
tmp.x=x+obj.x;
Как было у вас изначально.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2013, 21:10     Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings])
Еще ссылки по теме:

C++ Invalid conversion from 'char' to 'const char*'
C++ invalid conversion from ‘char**’ to ‘const char**’
C++ Инициализация графического драйвера: Deprecated conversion from string constant to 'char*'

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
02.01.2013, 21:10     Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) #22
Цитата Сообщение от tokar2 Посмотреть сообщение
kooClass kooClass::operator+(kooClass obj){
x=x+obj.x;
* * y=y+obj.y;
* * z=z+obj.z;
return *this;
}
- это не одно и тоже
Цитата Сообщение от tokar2 Посмотреть сообщение
kooClass kooClass::operator+(kooClass obj){
* * kooClass tmp;
* * tmp.x=x+obj.x;
* * tmp.y=y+obj.y;
* * tmp.z=z+obj.z;
return tmp;
}
- вот так правильно!

Добавлено через 58 секунд
tokar2, верни свой изначальный код, вторая версия кода модернизирует переменные класса x,y,z, в результате чего необратимо теряются их начальные значения
Yandex
Объявления
02.01.2013, 21:10     Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings])
Ответ Создать тему
Опции темы

Текущее время: 16:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru