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

warning C4309: =: усечение константного значения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Снова конструктор http://www.cyberforum.ru/cpp-beginners/thread635376.html
в книге написан пример NoD(std::istream &is) { is >> *this; } а по заданию надо его еще сделать по умолчанию std::cin при компиляции пишет error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует) и т.д.
C++ Запись звука Кто-нибудь писал подобные программки, для захвата звука? Если кто писал, помогите пожалуйста, а то я дико туплю. Накидал тут по статье (http://www.junglewin.narod.ru/sound.html): void __fastcall TForm1::Button1Click(TObject *Sender) { WAVEFORMATEX WaveFormat; WaveFormat.wFormatTag = WAVE_FORMAT_PCM; http://www.cyberforum.ru/cpp-beginners/thread635363.html
C++ Указатели на строки
Есть следующий код: class Strings // класс с указателями на строки (размер которого равен 8) { public: char* str1; char* str2; Strings() { memset(this,0,sizeof *this);
C++ Обращение к перегруженному оператору () через указатель на объект
Собственно, как? class MyClass { .. void operator() (int _i) { cout << "operator()" << _i << endl; } };
C++ Изменение свойств кнопки из обработчика таймера http://www.cyberforum.ru/cpp-beginners/thread635338.html
Есть функция обработчик таймера, необходимо из этой функции вызвать PerformClick кнопки, как это сделать. Функция обработчик таймера объявлена как static, что бы обратиться к свойствам кнопки её тоже нужно объявить как static, по другому никак?
C++ Наследование объекта Народ, помогите пожалуйста. Вопрос в следующем. Есть абстрактный базовый класс BaseClass, в нем объявлен объект Timer класса TTimer, который, в свою очередь имеет свои методы (Start(), Match(), и т.д.). У базового класса есть множество потомков. Будет ли при создании экземпляров потомков создаваться новый экземпляр класса TTimer (или мы будем иметь дело лишь с объявленным объектом в базовом... подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
09.08.2012, 19:29     warning C4309: =: усечение константного значения
Если я правильно понял и вопрос, и задачу, то
Все дело в функции :
void write_rus (char *string)
Дело в том, что у тебя строка принимается по указателю, а значит никакой доп. переменной не создается (что логично), однако сама строка у тебя константа вида "....", а значит для неё создается временная переменная, которая и передается к тебе в функцию. Да, это warning, но не error. Думаю, что исправить можно лишь :
1) Создав доп. переменную в функции и скопировав в неё содержимое
или
2) Создав доп. переменную в main и уже её отсылать в функцию

p.s С 'x' всё впорядке вроде

p.p.s Чтобы выводить русские символы :
#include <clocale>
в main :
setlocale(0, RUS);
 
Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru