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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
#1

class && constructor - C++

29.06.2012, 23:16. Просмотров 473. Ответов 3
Метки нет (Все метки)

День добрый!
Создаю кое-что для кое-чего, но внезапно столкнулся с такой проблемой...
Прототип моего класса имеет вид:
C++
1
2
3
4
5
    ...
public:
    cacher( char *, uint32_t );
    ~cacher();
    ...
* Конструктор абсолютно такой же, но, при создании класса через new возникает такая проблема:
test.cpp:12:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
в строке:
C++
1
    cacher * c = new cacher( "test.bin", 8 );
Вопрос: я чего-то не знаю, что-то делаю не правильно или это глюк GCC 4.7.1 ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2012, 23:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос class && constructor (C++):

public class && static class - C++
Вообщем у меня небольшая связка, которую я хотел бы использовать в программе своей, но компилятор мне выдает ошибку и я не знаю что все...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;) - C++
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H #include &lt;string&gt; class A { ...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration? - C++
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp; outs, const Rational&amp;); - invalid function declaration. ...

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& - C++
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? - C++
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt; setw(5) &lt;&lt; ptr; // вывод элементов...

Порядок вычисления: операторы «|» и «||», «&» и «&&» - C++
В Java булевые операторы «|» и «||», и «&amp;» и «&amp;&amp;» отличаются друг от друга порядком вычеслений, а в C++ так же как и в Java или...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17823 / 6033 / 388
Регистрация: 30.03.2009
Сообщений: 16,563
Записей в блоге: 26
29.06.2012, 23:32 #2
В прототипе конструктора замени "char*" на "const char*". Т.к. строковой литерал имеет тип const char*

Добавлено через 5 минут
Смысл предупреждения в том, что бы берёшь указатель на const-объект и передаёшь его в функцию, где указатель не-const. Т.е. компилятор допускает, что в функции возможна модификация по указателю, коль скоро на нём нет признака const
1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
30.06.2012, 00:01  [ТС] #3
Evg, спасибо, помогло. Странно что впервые это встречаю..)

Добавлено через 24 минуты
Цитата Сообщение от Evg Посмотреть сообщение
что бы берёшь указатель на const-объект и передаёшь его в функцию, где указатель не-const.
Смысл того что ты хотел сказать понял, но теперь мне не понятно почему этого предупреждения нет в этом случае:
C++
1
    cacher  c( "test.bin", 8 );
Ведь я же беру указатель на тот же 'const-объект' и передаю его туда же по-сути!...
0
Evg
Эксперт CАвтор FAQ
17823 / 6033 / 388
Регистрация: 30.03.2009
Сообщений: 16,563
Записей в блоге: 26
30.06.2012, 01:32 #4
Вот тут хз... Смысл данного действа по большому счёту тот же самый (с точки зрения передачи строки). Может тут есть ещё какая-то великая логика, но мне она недоступна
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2012, 01:32
Привет! Вот еще темы с ответами:

Friend ostream& operator<<(ostream& stream, CArr& obj); - C++
CArr.h #pragma once class CArr{ int* arr = nullptr; int size = 10; void swap(int *a, int *b); void swap(int &amp;a, int &amp;b); ...

Выделение памяти для буффера, под std::istream& operator>>(std::istream &, String &) - C++
Добрый день. Как осуществляется выделения памяти под перегруженный оператор ввода данных в пользовательский тип? Ведь мы заранее не можем...

Abstract class & STL - C++
list&lt;CGraphicsObject*&gt; objS; objS.push_back(new Circle(&quot;Circle&quot; , 1)); objS.push_back(new Square(&quot;Square&quot; , 2)); objS.push_back(new...

Как проверить, принадлежит ли символ заданному диапазону m...n, кроме if (c <= n && c >= m) ? - C++
есть какая-нибудь более короткая запись для проверки, принадлежит ли символ заданному диапазону m...n, кроме if (c &lt;= n &amp;&amp; c &gt;= m) ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.06.2012, 01:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru