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

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

Войти
Регистрация
Восстановить пароль
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

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

20.02.2013, 21:54. Просмотров 833. Ответов 5
Метки нет (Все метки)

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);
};
кугается.
как обьявить вектор в классе? спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2013, 21:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как объявить vector в классе? (C++):

Как правильно объявить vector в классе? - C++
как правильно объявить вектор? #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; extern int map; ...

Vector<MyStruct> - как првильно объявить iterator - C++
struct _1C { string Tag; string Rus; string Eng; _1C(const string &amp;Tag, const string &amp;Rus, const string &amp;Eng) : Tag(Tag),...

Как объявить переменную в классе? - C++
Доброго времени суток. Как правильно объявить переменную в private: Делаю так: private: std::vector&lt;double&gt;* parameters = new...

Как объявить текстовую константу в классе? - C++
Добрый вечер. Нужно объявить текстовую константу в классе. Как это сделать? static const QString FAQ = &quot;faq.txt&quot;;Можно также просто как...

Как объявить вектор фиксированной длины в классе? - C++
Нужно создать поле класса - вектор из двух элементов. Но код: class A { private: std::vector&lt;int&gt; v (2); ... } ...

Как в классе правильно объявить массив с константой в качестве размерности? - C++
Приветствую всех! Написал следующий код: Unit1.h class WireBare_Open { const int METAL_MAX; const int SECTION_MAX; ...

5
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
20.02.2013, 22:03 #2
вектор чего??? Nodeов?
А Node это тоже шаблон какой-то?
Так у тебя не класс тут представлен, а шаблон класса. Тебе же шаблон нужен?

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

Добавлено через 2 минуты
Цитата Сообщение от slipp1 Посмотреть сообщение
кугается.
Обычно после таких слов пишут КАК именно кугается.
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
20.02.2013, 22:08  [ТС] #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)
{
}
сделал так. работает.
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.02.2013, 22:10 #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
разве можно инициализировать поля прямо в объявлении класса?
в С++11 можно.
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
20.02.2013, 22:13 #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++ Посмотреть сообщение
можно инициализировать переменные члены внутри класса
Если это правда, то С++ ещё сильнее скатился в высокоуровневое дерьмо.
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
20.02.2013, 23:43 #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
не знаю такого.
Самый обыкновенный стандартный C++...
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Если это правда, то С++ ещё сильнее скатился в высокоуровневое дерьмо.
Не вижу ничего плохого в возможности инициализации поля класса значением по умолчанию вместо дублирования кода в списках инициализации разных версий конструкторов.
0
20.02.2013, 23:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2013, 23:43
Привет! Вот еще темы с ответами:

Как объявить в классе static-массив, не используя cpp файлы - C++
Есть шаблон. В шаблон в качестве аргумента надо передать массив. Именно в качестве аргумента шаблона, а не в качестве аргумента методов...

Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты? - C++
Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?

Можно ли объявить глобальный константный заполненный std::vector ? - C++
Хотелось бы, чтоб был объявлен в глобальном пространстве уже заполненный константный статический вектор пар..

Не могу объявить вектор в классе - C++
Здравствуйте. Изучаю С++, пишу игру &quot;Покер&quot;.) Только начал и сразу столкнулся с проблемой. При объявлении массива стрингов с помощью...


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

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

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