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

Как объявить vector в классе? - C++

Восстановить пароль Регистрация
 
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
20.02.2013, 21:54     Как объявить vector в классе? #1
C++
1
2
3
4
5
6
7
8
9
10
11
template<typename NODETYPE>
class List
{
public:
    List();
    ~List();
        ...
private:
    ...
    vector<Node<NODETYPE> *> index(10);
};
кугается.
как обьявить вектор в классе? спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
20.02.2013, 22:03     Как объявить vector в классе? #2
вектор чего??? Nodeов?
А Node это тоже шаблон какой-то?
Так у тебя не класс тут представлен, а шаблон класса. Тебе же шаблон нужен?

Кстати, разве можно инициализировать поля прямо в объявлении класса? Я такие вещи всегда в списке инициализации в конструкторе делал. Может что изменилось? Лучше напиши нормальный конструктор без выпендрёжа. И в нём сконструируй вектор.

Добавлено через 2 минуты
Цитата Сообщение от slipp1 Посмотреть сообщение
кугается.
Обычно после таких слов пишут КАК именно кугается.
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
20.02.2013, 22:08  [ТС]     Как объявить vector в классе? #3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
вектор чего??? Nodeов?
А Node это тоже шаблон какой-то?
Так у тебя не класс тут представлен, а шаблон класса. Тебе же шаблон нужен?

Кстати, разве можно инициализировать поля прямо в объявлении класса? Я такие вещи всегда в списке инициализации в конструкторе делал. Может что изменилось? Лучше напиши нормальный конструктор без выпендрёжа. И в нём сконструируй вектор.

Добавлено через 2 минуты
Обычно после таких слов пишут КАК именно кугается.
нужен векто с 10 элементами типа Node<NODETYPE> * как и где его правильно обьявить?

Добавлено через 1 минуту
Цитата Сообщение от slipp1 Посмотреть сообщение
кугается.
error C2059: syntax error : 'constant'

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<typename NODETYPE>
class List
{
public:
    List();
    ~List();
private:
    vector<Node<NODETYPE> *> index;
};
 
template<typename NODETYPE>
List<NODETYPE>::List()
:firstPtr(0),lastPtr(0),index(10)
{
}
сделал так. работает.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.02.2013, 22:10     Как объявить vector в классе? #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
разве можно инициализировать поля прямо в объявлении класса?
в С++11 можно.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
20.02.2013, 22:13     Как объявить vector в классе? #5
я сделал бы так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
using namespace std;
template<typename NODETYPE>
class Node{
public:
    Node(){};
};
template<typename NODETYPE>
class List
{
private:
    vector<Node<NODETYPE>*> index;
public:
    List(): index(10){};
    ~List(){};
};
Добавлено через 1 минуту
Цитата Сообщение от SeregaC++ Посмотреть сообщение
в С++11
не знаю такого.
Цитата Сообщение от SeregaC++ Посмотреть сообщение
можно инициализировать переменные члены внутри класса
Если это правда, то С++ ещё сильнее скатился в высокоуровневое дерьмо.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
20.02.2013, 23:43     Как объявить vector в классе? #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
не знаю такого.
Самый обыкновенный стандартный C++...
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Если это правда, то С++ ещё сильнее скатился в высокоуровневое дерьмо.
Не вижу ничего плохого в возможности инициализации поля класса значением по умолчанию вместо дублирования кода в списках инициализации разных версий конструкторов.
Yandex
Объявления
20.02.2013, 23:43     Как объявить vector в классе?
Ответ Создать тему
Опции темы

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