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

Можно ли заменить обращение к Union без указания типа переменной? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно разобраться с средой разработкой для C++ http://www.cyberforum.ru/cpp/thread1113231.html
Привет Всем ! Если я не ошибаюсь то с .NET 2003 (VS 7.1) шапки языка C++ немного изменился, и разница была следующая: 1. до: #include <iostream.h> void main(void) .........
C++ Libxl.h как подключить? Помогите подключить библиотеку к Visual C++ 2012 Или даже так - помогите разобраться с тем как парсить с xls файлов. http://www.cyberforum.ru/cpp/thread1111407.html
Ошибка с распределением цикла по потокам в Open MP C++
нужно цикл for разделить м/у потоками,но почему то ошибки выдает ,первый раз с Open MP работаю,подскажите как исправить ,пожалуйста... пишу на VS 2010 Ultimate ошибки:Ошибка 4 error C3004: shared:...
Надзиратель томагавков или что за велосипед я изобрел? C++
She's alive! Господа, в общем вдохновился я темой programina про статические поля класса и решил создать что-то похожее на сборщик мусора. По скольку я придерживаюсь мнения, что порою лучше сперва...
C++ Получение из файла формата wav массива значений http://www.cyberforum.ru/cpp/thread1108824.html
Столкнулся со следующей задачей, требуется получить из wav файла массив значений. Сам владею Си на примитивном уровне, по этой причине решить данную задачу самостоятельно не могу, поиск в гугле...
C++ Run exe from memory (x64) Есть необходимость запускать exe из памяти, а не с диска. Может кто сталкивался с данным проектом? Сам находил много проектов, но они были Win32 и не работали под сборкой x64. А мне нужен именно... подробнее

Показать сообщение отдельно
DrOffset
7152 / 4293 / 968
Регистрация: 30.01.2014
Сообщений: 7,093
23.03.2014, 17:57
Цитата Сообщение от Izual Посмотреть сообщение
Значит в собственную функцию можно, а в стандартную(strcat например) нет?
Почему же нельзя? Можно.

Цитата Сообщение от Izual Посмотреть сообщение
Да просто надоели уже переубеждать
Может быть стоит задуматься почему так происходит? Хотя лично я тебя не переубеждаю. Я пытаюсь заставить тебя подумать о том, что твое мнение не единственно правильное на земле. И раз существуют разные инструменты, не значит что их придумали глупцы, если лично тебе они не подходят.

Цитата Сообщение от Izual Посмотреть сообщение
Виноват, если он не качественный.
Ты меня извини, но я пока не могу сказать, что ты можешь это объективно оценить. Если ты говоришь, что не хочешь (по любым причинам), это я приму, а подобные приведенному выше утверждения - нет.

Добавлено через 12 минут
Вот пример из 4го поста вместе с strcat (в нем все еще отсутствует проверка на текущий тип в union, но я думаю это понятно).
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
#include <cstring>
#include <cstdio>
 
union data_t
{
    int   i;
    float f;
    char  str[42];
 
    operator int()
    {
        return i;
    }
    operator float()
    {
        return f;
    }
    operator char * ()
    {
        return str;
    }
 
    data_t & operator=(char const * s)
    {
        strncpy(str, s, 41);
        return *this;
    }
    data_t & operator=(int x)
    {
        i = x;
        return *this;
    }
    data_t & operator=(float x)
    {
        f = x;
        return *this;
    }
};
 
int main()
{
    data_t data;
    char buf[256] = "this is a ";
 
    data = "test";
    strcat(buf, data); // здесь явно писать не надо, т.к. приведение будет
                       // выбрано в соответствии с типом аргумента
 
    printf("%s\n", (char*)data); // здесь явное приведение нужно, потому что printf
                                 // работает (через эллипсис) в обход системы типов языка
 
    printf("%s\n", buf);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru