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

Какие ошибки допущены при проектировании класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как симулировать нажатие клавиш? http://www.cyberforum.ru/cpp-beginners/thread1234844.html
как в c++ симулировать нажатие клавиш?
C++ Структура приложения Клиент-сервер как в c++ будет выглядеть код, который на java выглядит так SERVER: Socket socket = new ServerSocket(34323, 5, null).accept(); InputStream sin = socket.getInputStream(); OutputStream sout = socket.getOutputStream(); DataInputStream in = new DataInputStream(sin); DataOutputStream out = new DataOutputStream(sout); CLIENT: http://www.cyberforum.ru/cpp-beginners/thread1234843.html
Какие есть GUI библиотеки для c++ C++
какие есть GUI библиотеки для c++, они вообще есть?
Какие есть компиляторы c++ без изменения синтаксиса C++
какие есть компиляторы c++ без изменения синтаксиса?
C++ Какую ide лучше использовать для c++ http://www.cyberforum.ru/cpp-beginners/thread1234833.html
какой ide лучше использовать для c++?
C++ Убрать консоль при запуске программы как сделать так чтобы при запуске программы на c++ не открывалась консоль? подробнее

Показать сообщение отдельно
DrOffset
6840 / 4051 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
27.07.2014, 14:47     Какие ошибки допущены при проектировании класса
trev, потому что multi-character character constant имеет тип int, а не char. Лучше так вообще не делать. Ибо непереносимо, и даже здесь (в таком простейшем случае) проявляются всякие побочные эффекты.

Добавлено через 28 секунд
Цитата Сообщение от gray_fox Посмотреть сообщение
вообще запись вроде '56' некорректна
Корректна, но непереносима. Это multi-character character constant.

Добавлено через 10 минут
Цитата Сообщение от trev Посмотреть сообщение
не выводит двузначные символы как надо, например вместо "56" он записывает в файл 6, "12" = "2" и так далее..
Внутреннее устройство multi-character character constant может отличаться от компилятора к компилятору. Но здесь, видимо, происходит следующее:
C++
1
2
3
4
5
6
7
8
9
int main()
{
    int b = '12';
// запись мультисимвола '12' в little-endian
//    *((char*)&b)       = '2';
//    *(((char*)&b) + 1) = '1';
 
    char c = (char)b; //получаем 2
}
Добавлено через 3 минуты
trev, вот тут еще почитай.
 
Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru