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

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

Войти
Регистрация
Восстановить пароль
 
 
KokosSPb
81 / 84 / 3
Регистрация: 03.02.2011
Сообщений: 468
#1

Объект общего вида (Object) в консольном приложении - C++

28.11.2013, 11:46. Просмотров 518. Ответов 19
Метки нет (Все метки)

Всем привет.
Не смог понять одной вещи: есть ли возможность создать функцию с аргументом типа Object(Любой объект, чтоб, что я туда не передам - всё бы съелось), как в VB, C#, Java или Obcect Pascal?
Я нашел, что такое существует при использовании пространства имен System, но такое пространство имен в консоли не подключить (или не получается именно у меня).
Как быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 11:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объект общего вида (Object) в консольном приложении (C++):

Таблица в консольном приложении - C++
Здравствуйте. Помогите пожалуйста советом, как организовать таблицу в консольном приложении? Таблица состоит из n строк и 2 столбцов.

Меню в консольном приложении - C++
есть ошибки не могу исправить #include <iostream> #include <iomanip> #include <ctime> #include <cstdlib> using namespace std; ...

CAsyncSocket в консольном приложении - C++
Пишу простейшие приложения (сервер, клиент) с использованием CAsyncSocket. Проблема в том, что callback функции не вызываются в консольном...

Тетрис в консольном приложении - C++
Помогите с написанием тетриса в консоли, пожалуйста. Как сделать поле, и чтобы по нему передвигалась фигура? И чтобы можно было стрелками...

Вывод в консольном приложении - C++
Всем доброго времени суток. Написал приложение выводящие через printf 5 строк с паузой в 1 сек. При обычном запуске всё работает хорошо....

WxWidgets - в консольном приложении - C++
Начал изучение библиотек wxWidgets в Code Blocks, столкнулся с проблемой компиляции, вроде все подключено,просто строку в консоль выводит а...

19
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.11.2013, 11:55 #2
Цитата Сообщение от KokosSPb Посмотреть сообщение
есть ли возможность создать функцию с аргументом типа Object(Любой объект, чтоб, что я туда не передам - всё бы съелось), как в VB, C#, Java или Obcect Pascal?
В С++ нет такого общего для всех классов предка. Можно использовать шаблоны, но это по другому работает.
Цитата Сообщение от KokosSPb Посмотреть сообщение
Я нашел, что такое существует при использовании пространства имен System, но такое пространство имен в консоли не подключить (или не получается именно у меня).
System - это из С++/CLI, а не С++.
1
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
28.11.2013, 11:56 #3
KokosSPb, в С++ Template-Ы или void* .
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
28.11.2013, 12:45 #4
Цитата Сообщение от KokosSPb Посмотреть сообщение
с аргументом типа Object(Любой объект, чтоб, что я туда не передам - всё бы съелось)
хочется спросить, зачем?
0
SatanaXIII
Супер-модератор
Эксперт С++
5619 / 2654 / 247
Регистрация: 01.11.2011
Сообщений: 6,554
Завершенные тесты: 1
28.11.2013, 14:14 #5
Цитата Сообщение от KokosSPb Посмотреть сообщение
Не смог понять одной вещи: есть ли возможность создать функцию с аргументом типа Object(Любой объект, чтоб, что я туда не передам - всё бы съелось), как в VB, C#, Java или Obcect Pascal?
Как мне подсказывает священная борланда имеется в виду создание функции-метода класса, которая получает аргумент - указатель на экземпляр такого же класса.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.11.2013, 14:15 #6
Цитата Сообщение от Raali Посмотреть сообщение
хочется спросить, зачем?
Вероятно хочется полиморфного поведения внутри функции. Но для этого должна быть иерархия.
А единого коренного типа в C++ нет.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.11.2013, 14:19 #7
Цитата Сообщение от Raali Посмотреть сообщение
хочется спросить, зачем?
Как вариант если параметризации нет, а обобщённый код нужен (коллекция какая-нибудь, как в старой Яве).
0
KokosSPb
81 / 84 / 3
Регистрация: 03.02.2011
Сообщений: 468
28.11.2013, 16:43  [ТС] #8
Цитата Сообщение от gray_fox Посмотреть сообщение
Как вариант если параметризации нет, а обобщённый код нужен
почти, использую класс на подобии списка или стека, он вообще содержит только указатели, и я хочу иметь возможность передавать на него указатели любого типа :-)
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.11.2013, 16:49 #9
Цитата Сообщение от KokosSPb Посмотреть сообщение
передавать на него указатели
на него или "в него"?
Либо надо иерархию строить с базовым типом, либо использовать void*.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.11.2013, 17:00 #10
Цитата Сообщение от KokosSPb Посмотреть сообщение
я хочу иметь возможность передавать на него указатели любого типа :-)
Всмысле в один и тот же контейнер указатели с разными, не связанными между собой типами? Тогда void *, только придётся при извлечении приводить к нужному типу, что вообще черевато ошибками.
0
KokosSPb
81 / 84 / 3
Регистрация: 03.02.2011
Сообщений: 468
28.11.2013, 19:43  [ТС] #11
Цитата Сообщение от gray_fox Посмотреть сообщение
Всмысле в один и тот же контейнер указатели с разными, не связанными между собой типами?
ну, по сути, указатели будут одного типа (просто еще не решил какого), но хотелось бы написать так, чтобы было универсально, а не так как я сейчас (сейчас для проверки тип объекта int):-)
C++
1
2
#define Object int
void Add(int x);
я могу, конечно потом заменить свой int на любой другой тип, но просто хотел выяснить, можно ли без этой фигни?:-)
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.11.2013, 19:46 #12
Цитата Сообщение от KokosSPb Посмотреть сообщение
можно ли без этой фигни?:-)
Шаблон класса.
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
28.11.2013, 20:21 #13
Цитата Сообщение от gray_fox Посмотреть сообщение
Шаблон класса.
Шаблонный класс, если проводить аналогии на std::vector<T> не позволяет хранить полиморфные типы. Если конечно T - это не указатель на базовый класс некоторой иерархии.
1
KokosSPb
81 / 84 / 3
Регистрация: 03.02.2011
Сообщений: 468
28.11.2013, 20:31  [ТС] #14
Понял, нельзя :-)
0
KokosSPb
81 / 84 / 3
Регистрация: 03.02.2011
Сообщений: 468
02.12.2013, 08:00  [ТС] #15
А может всё-же есть идеи? :-) Хотелось бы иметь возможность использовать свой класс для двух типов аргументов и при этом не дублировать класс с новым названием и другим типом аргумента, но в остальном - идентичным
0
02.12.2013, 08:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 08:00
Привет! Вот еще темы с ответами:

Ошибка в консольном приложении - C++
{ class Program { public struct Point { public int X; public int Y; ...

Вывод в консольном приложении - C++
Мне надо после 19 вернуться на прежнюю строку. Что бы после 19 числа начали выводиться вверх ( по спирали, и что бы ничего не стиралось )....

Изображение в консольном приложении. - C++
Помогите, пожалуйста, с загрузкой и отображением изображений формата bmp в консольном приложении C++. Очень надо! Заранее спасибо.

Графика в консольном приложении - C++
Помогите создать приблизительно такую штуку, которая будет высвечиваться при запуске консольной программы, и по нажатию на любую клавишу...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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