Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ход конем Совсем недавно Вася занялся программированием и решил реализовать собственную программу для игры в шахматы. Но у него возникла проблема определения правильности хода конем, который делает пользователь. Т.е. если пользователь вводит значение «C7-D5», то программа должна определить это как правильный ход, если же введено «E2-E4», то ход неверный. Так же нужно проверить корректность записи ввода:... https://www.cyberforum.ru/ cpp-beginners/ thread1793708.html Функции заполнения и вывода массива C++
Напишите две функции. Первая функция заполняет массив, вторая функция выводит массив на экран. В ответе дается одно число, не массивом. Что не так? #include <stdio.h> #include <stdlib.h> #include <iostream.h> int zapmas() { randomize();
C++ Компилятор некорректно парсит текст программы https://www.cyberforum.ru/ cpp-beginners/ thread1793581.html
Добрый вечер! Не понятно почему, но данный код не компилируется: template<int value> class Test { struct MyStruct { template<int key> static constexpr int test() { return 1; } };
C++ Зачем нужны хэш контейнеры? Привет всем) Собственно такой вопрос: зачем нужны хэш контейнеры? В чем разница между стандартными контейнерами STL? Эффективность и тд? Никогда не пользовался ими в коде, поэтому прошу по-подробней) https://www.cyberforum.ru/ cpp-beginners/ thread1793558.html
C++ Как правильно оформлять заголовок main
Добрый день всем. Читая книги, копаюсь в чужих кодах нахожу разное оформление функции main. Например в Керниган и Ритчи по Си, автор иногда юзает int main(int argc, char* argv) даже там, где не передает никаких параметров из консоли (на CPP студио используют в коде на С++). В книге "С++ Для чайников" Стефана Девиса используется int main (nNumberOfArgs, char* pszNumberOfArgs) практически во...
C++ Потерялся в двумерном массиве https://www.cyberforum.ru/ cpp-beginners/ thread1793495.html
#include <iostream> using namespace std; int main() { setlocale (LC_ALL, "Russian"); const int m=6, n=4; int a; int x = 5, y = 0;
C++ Как перегрузить оператор<< и оператор>> ? Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы их решить. вопрос первый. В общем у меня есть обьект в который содержит массив типа char и его велечину.класс называеться (MString) перегрузить оператор функция которая должна вернуть мне значение находящиеся в индксе i тоесть когда я вызываю оператор то должно случиться следующее допустим у... https://www.cyberforum.ru/ cpp-beginners/ thread1793490.html C++ Нюансы использования файлового ввода/вывода
Подскажите пожалуйста ещё по 1 вопросу. У меня в коде целочисленный массив (на данный момент все элементы равны 0). Мне надо что бы в программе можно было менять эти переменные не изменяя код. Для этого мне надо что бы программа могла вызвать функцию которая запишет их в файл и позже выведет по запросу. И если необходимо то заменит данные в файле. Вопрос такой: Как записать данные я знаю, но...
C++ Сортировка перестановками https://www.cyberforum.ru/ cpp-beginners/ thread1793407.html
Хотел написать функцию для сортировки. Компилятор ошибок не выдает.На выводе выходит это: 3 2 5 4 1 8 6 9 7 11 13 10 12 14 -858993460 . Писал в Visual Studio. #include "stdafx.h" #include <iostream> using namespace std; void func(int mass, int size) { bool What = 1; for(;0==0;){ for (int i = 0;i < size;i++) {
C++ Реализовать автоматизированную информационную систему железнодорожного вокзала (динамические структуры данных) Задание работы: Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается: □ номер поезда; □ станция назначения; □ время отправления. https://www.cyberforum.ru/ cpp-beginners/ thread1793402.html
C++ Проверить попадание точки в заданный сектор
Как перед танчиком проверить сектор с углом 60 градусов радиуса R?
C++ Не компилируется рекурсивная шаблонная функция Добрый день! Есть функция:#include <iostream> template<uint8_t data, uint8_t ...other> static void write() { std::cout << data << std::endl; write<other...>(); } https://www.cyberforum.ru/ cpp-beginners/ thread1793366.html
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
15.08.2016, 15:18 0

Приведение указателя базового типа - C++ - Ответ 9457488

15.08.2016, 15:18. Показов 4004. Ответов 23
Метки (Все метки)

Лучший ответ Сообщение было отмечено kokzahvas как решение

Решение

Цитата Сообщение от kokzahvas Посмотреть сообщение
Главное мне надо составить подобный конспект, но про указатели.
Лично я думаю, что от подобных конспектов нет толку. Лучше законспектировать свойства различных преобразований. Т.е. конспекты должны быть не по конкретным примерам преобразований, а по их типам. Примерно в такой структуре:
* static_cast - его свойства (что делает, когда применяется), пример;
* reinterpret_cast - его свойства (что делает, когда применяется), пример;
* dynamic_cast - его свойства (что делает, когда применяется), пример;
* const_cast - его свойства (что делает, когда применяется), пример;
* c-style преобразование - его свойства, примеры.

А то если судить по твоим конспектам, то через static_cast нельзя преобразовать указатели. Но на самом деле можно, просто для этого должны быть соблюдены условия. Например каст в void * и обратно, это именно static_cast. Указатели в пределах иерархии классов также могут быть приведены через static_cast. У тебя этого нет в конспектах. Вот я и предлагаю тебе конспектировать эти условия, а не примеры кастов. Толку будет больше.

Впрочем вот тебе пара комментариев по твоему наброску:
Кликните здесь для просмотра всего текста
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
#include <iostream>
int main(int argc, char **argv)
    {
        char a = 96;
        char *ptra = &a;
        short b = static_cast<short>(a);
        short *ptrb = reinterpret_cast<short*>(ptra); // UB при попытке чтения значения по указателю
        int c = static_cast<int>(b);
        int *ptrc = reinterpret_cast<int*>(ptrb); // UB при попытке чтения значения по указателю
        long long d = static_cast<long long>(c);
        long long *ptrd = reinterpret_cast<long long*>(ptrc); // UB при попытке чтения значения по указателю
        float e = static_cast<float>(d);
        float *ptre = reinterpret_cast<float*>(ptrd); // UB при попытке чтения значения по указателю
        long long f = 1234567890123456789;
        long long *ptrf = &f;
        long g = static_cast<long>(f);
        long *ptrg = reinterpret_cast<long*>(ptrf); // OK, прочитается часть числа f (пример - первые 4 байта из 8)
        short h = static_cast<short>(g);
        short *ptrh = reinterpret_cast<short*>(ptrg); // OK, прочитается часть числа f (пример - первые 2 байта из 8)
        float i = 3.1415;
        float *ptri = &i;
        int j = static_cast<int>(i);
        float *ptrj = reinterpret_cast<float*>(ptri);
        return 0;
    }


Вернуться к обсуждению:
Приведение указателя базового типа C++
1
Заказать работу у эксперта

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2016, 15:18
Готовые ответы и решения:

Приведение типа указателя
Здравствуйте, у меня такой вопрос: как организовать приведение типа указателя к другому? Есть...

Приведение типа указателя на метод
Здравствуйте. Есть функция, принимающая void (*f)(), возможно ли использовать ее в классе,...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса -...

Вызов виртуального метода базового класса из указателя производного
Допустим есть такой код: #include &lt;iostream&gt; class Base { public: virtual void f() {...

23
15.08.2016, 15:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2016, 15:18
Помогаю со студенческими работами здесь

Приведение указателя на функцию
Здравствуйте, у меня простейший вопрос, но самому не догнать что-то... В качестве аргумента...

Приведение void* указателя к типу
struct tParamStruct { const char* Result; }; tParamStruct ParamStruct; void show(void...

Приведение void* к типу указателя на структуру
Тема обсуждалась здесь, но решения так и нет нормального Есть два (и более, хоть до 20) линейных...

Приведение указателя на void к другому типу?
в поиске смотрел - не помогло! Возникла проблемка: В книге сказано, что указателю на void можно...

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