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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
alkagolik
Заблокирован
#1

конфликт типов - C++

09.10.2011, 23:00. Просмотров 1531. Ответов 27
Метки нет (Все метки)

пишу себе Си хедер. как реализовать универсальность одной функции для всех типов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 23:00     конфликт типов
Посмотрите здесь:

Конфликт типов (int, double, bool) - C++
Есть простейший класс class A { public: A( long ) {} A( double ){} A( bool ) {} } и при создании обьекта new...

Конфликт имён - C++
Добрый день. При запуске программы возникает следующая ошибка: Сейчас изучаю книгу Страуструпа "Программирование. Принципы и...

конфликт имен - C++
пытаюсь вызвать CButton* button= (CButton*)GetDlgItem(IDC_BUTTON); // пишет что определено в WinUser.h пишет error C2660:...

Конфликт компиляторов - C++
Здравствуйте, я относительно недавно начал программировать, экспериментирую с созданием игр на движке HGE. У меня установлен Microsoft...

Конфликт итераторов - C++
Доброго времени суток. Пишу Timsort с использованием шаблонов и итераторов. Написал класс CTimsort, в нем все необходимые методы и их...

Конфликт конструкторов. - C++
Здравствуйте! struct DateTime : tm { DateTime(int year_ = 1970, int month_ = 1, int day_ = 1,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
09.10.2011, 23:02     конфликт типов #2
Перегрузить функцию.
alkagolik
Заблокирован
09.10.2011, 23:04  [ТС]     конфликт типов #3
например?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
09.10.2011, 23:10     конфликт типов #4
Пардон. В Си перегрузки нет. Получается что никак.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
10.10.2011, 00:42     конфликт типов #5
alkagolik, void*?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.10.2011, 00:44     конфликт типов #6
или макросы
alkagolik
Заблокирован
10.10.2011, 01:17  [ТС]     конфликт типов #7
void** работает! инициализируется и выводит и удаляется.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
void **create_def(){
    int i, j;
    void **matrix;
 
    matrix = (void **) malloc (my_default_size * sizeof(void*));
    if ( !matrix) exit(__ERROR_CREATE_MEM);
 
    for(i = 0; i != my_default_size; ++i){
        matrix[i] = (void *) malloc(my_default_size * sizeof(void));
        if ( !matrix[i] ) exit(__ERROR_CREATE_MEM);
    }
    return matrix;
}
Цитата Сообщение от alex_x_x Посмотреть сообщение
или макросы
пример можно?

нет. с удалением я тупнул, забыл комментарии снять. не хочет функция в качестве аргумента принимать не void
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
10.10.2011, 01:28     конфликт типов #8
alkagolik, не понял точно, что именно Вы пытаетесь сделать, но посмотрите на стандартные функции такие, как qsort()/calloc()/etc... Стандартная практика передавать типом void* указатель на данные, размер одного элемента и количество элементов...
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.10.2011, 01:29     конфликт типов #9
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define _ADD(type) \
type add_ ## type (const type a, const type b) \
{ \
  return ((a) + (b)); \
}
 
#define ADD(type, a, b) (add_ ## type(a, b))
 
_ADD(int);
_ADD(double)
 
int main()
{
   return ADD(int, 1, -1);
}
Добавлено через 52 секунды
чтото вроде, время позднее, ничего умнее в голову не приходит
alkagolik
Заблокирован
10.10.2011, 02:15  [ТС]     конфликт типов #10
easybudda, а есть вообще где глянуть сорцы сишных функций? realloc(), qsort()...
вот к примеру realloc() может принимать первым параметром любой тип. я же пишу функцию вида
C
1
void func(void **arg1, const size_t arg2)
и компилятор ругается что ему вместо void** подсунули char**
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.10.2011, 02:26     конфликт типов #11
Цитата Сообщение от alkagolik Посмотреть сообщение
вместо void** подсунули char**
похоже, что компилируется плюсовым компилятором
alkagolik
Заблокирован
10.10.2011, 02:31  [ТС]     конфликт типов #12
Цитата Сообщение от alex_x_x Посмотреть сообщение
похоже, что компилируется плюсовым компилятором
gcc + консоль
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.10.2011, 02:37     конфликт типов #13
пардон за глупый вопрос, а расширение файла .c?
alkagolik
Заблокирован
10.10.2011, 02:42  [ТС]     конфликт типов #14
alex_x_x, именно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2011, 02:58     конфликт типов
Еще ссылки по теме:

Конфликт имен в библиотеках - C++
Здравствуйте. Возникла проблема при одновременном подключении #include <X11/extensions/xf86vmode.h> и #include "FreeImage.h" Код...

Конфликт пространств имён - C++
Есть у меня два разных класса, имеющими одно название. И есть другие две библиотеки, использующие эти классы (каждая свой). Я...

Наследование классов. Конфликт методов - C++
Здравствуйте! Проблема следующая. Написал операции постфиксной и префиксной декрементации и инкрементации счетчика, который находится в...

Конструкторы в списках и конфликт имён - C++
Здравтсвуйте, уважаемые программисты, меня волнуют следующие вопросы: 1) Мне нужны примеры применения конструкторов в списках. Я нашёл в...


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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.10.2011, 02:58     конфликт типов #15
неявно приводить char** к void** нельзя
в самом по себе void** смысла то нет большого
Yandex
Объявления
10.10.2011, 02:58     конфликт типов
Ответ Создать тему
Опции темы

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