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

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

Войти
Регистрация
Восстановить пароль
 
kvendingoldo
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 23
#1

Как реализовать свой тип данных - C++

09.08.2014, 22:45. Просмотров 1291. Ответов 6
Метки нет (Все метки)

Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr[i] будет соответсвовать две переменные(arr[i].a,arr[i].b). Если точнее - arr[1].a,arr[1].b ... arr[n].a,arr[n].b. В дельфи такое делалось через type. Читал про структуры,но вроде это не то,что надо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NeonLost
Пес войны
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
09.08.2014, 22:48     Как реализовать свой тип данных #2
Цитата Сообщение от kvendingoldo Посмотреть сообщение
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr[i] будет соответсвовать две переменные(arr[i].a,arr[i].b). Если точнее - arr[1].a,arr[1].b ... arr[n].a,arr[n].b. В дельфи такое делалось через type. Читал про структуры,но вроде это не то,что надо.
либо так
C++
1
2
3
4
5
struct pair
{
    int a;
    int b;
};
либо так
C++
1
2
3
4
5
class pair
{
    int a;
    int b;
};
а вообще есть std::pair
St1f1er
2 / 2 / 0
Регистрация: 08.08.2014
Сообщений: 14
09.08.2014, 22:55     Как реализовать свой тип данных #3
Цитата Сообщение от kvendingoldo Посмотреть сообщение
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr[i] будет соответсвовать две переменные(arr[i].a,arr[i].b). Если точнее - arr[1].a,arr[1].b ... arr[n].a,arr[n].b. В дельфи такое делалось через type. Читал про структуры,но вроде это не то,что надо.
Может двумерный массив? arr[n][a] arr[n][b]

А свой тип данных это тебе в классы
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.08.2014, 11:44     Как реализовать свой тип данных #4
NeonLost, ну с классом (а стало быть приватным доступом по умолчанию) так не выйдет
Цитата Сообщение от kvendingoldo Посмотреть сообщение
Читал про структуры,но вроде это не то,что надо.
Как раз то, что надо. По крайне мере, начать с этого точно можно.
NeonLost
Пес войны
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
10.08.2014, 12:18     Как реализовать свой тип данных #5
Цитата Сообщение от Tulosba Посмотреть сообщение
NeonLost, ну с классом (а стало быть приватным доступом по умолчанию) так не выйдет
готов с тобой поспорить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Foo {
private:
char a;
int b;
float c;
 
public:
Foo() : a('a'), b(10), c(3.5f) {}
};
 
#include <iostream>
int main() {
Foo* foo = new Foo();
 
std::cout«"hello world " « *((float*) ((void*) foo)+2);
 
delete foo;
return 0;
}
DrOffset
6922 / 4115 / 942
Регистрация: 30.01.2014
Сообщений: 6,910
10.08.2014, 12:27     Как реализовать свой тип данных #6
Цитата Сообщение от NeonLost Посмотреть сообщение
*((float*) ((void*) foo)+2);
Главное, при таких фортелях не забывать про выравнивание.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2014, 12:34     Как реализовать свой тип данных
Еще ссылки по теме:
Как создать свой собственный тип на C++? C++
C++ Как свой класс реализовать через формы
Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении? C++
C++ свой строковой тип
C++ Свой тип Boolean

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.08.2014, 12:34     Как реализовать свой тип данных #7
Цитата Сообщение от NeonLost Посмотреть сообщение
готов с тобой поспорить
такой спор лучше даже не начинать
Цитата Сообщение от NeonLost Посмотреть сообщение
«
Кавычки-то откуда вылезли вместо <<? Неужто из ворда?
Yandex
Объявления
10.08.2014, 12:34     Как реализовать свой тип данных
Ответ Создать тему
Опции темы

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