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

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

Восстановить пароль Регистрация
 
kvendingoldo
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 23
09.08.2014, 22:45     Как реализовать свой тип данных #1
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr[i] будет соответсвовать две переменные(arr[i].a,arr[i].b). Если точнее - arr[1].a,arr[1].b ... arr[n].a,arr[n].b. В дельфи такое делалось через type. Читал про структуры,но вроде это не то,что надо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NeonLost
Пес войны
 Аватар для 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
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.08.2014, 11:44     Как реализовать свой тип данных #4
NeonLost, ну с классом (а стало быть приватным доступом по умолчанию) так не выйдет
Цитата Сообщение от kvendingoldo Посмотреть сообщение
Читал про структуры,но вроде это не то,что надо.
Как раз то, что надо. По крайне мере, начать с этого точно можно.
NeonLost
Пес войны
 Аватар для 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
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,588
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     Как реализовать свой тип данных
Еще ссылки по теме:

Как сконвертировать свой тип в тип double? C++
C++ Свой тип Boolean
C++ Как создать свой целочисленный тип данных с пределом от 0 до 500

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

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

Текущее время: 17:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru