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

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

Войти
Регистрация
Восстановить пароль
 
redline15
#1

Не ясен синтаксис.STL - C++

16.03.2011, 18:47. Просмотров 725. Ответов 3
Метки нет (Все метки)

Наткнулся на такой код:

list<int>::const_iterator ci;

Но не могу понять, что это значит... мой небогатый опыт дал только два ответа, кот. тут явно не подходят: либо это статическая переменная (но это инициализация), либо это множественное наследование и нужно указать базовый класс (но как я понял класс итератор и подобные не наследуются от листа)... полез я в исходник list'a, так там typename'ом обозначено это всё как класс и итератор обозначен как фрэнд для листа... но такую структуру первый раз вижу... объясните, пожалуйста, желательно популярно для чайника, как это устроено
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2011, 18:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не ясен синтаксис.STL (C++):

Не ясен синтаксис в коде - C++
Доброго времени суток! LPVOID buffer = malloc( siz + 1 ); // создали буфер Далее сама проблема &amp;( ( char* )buffer ) ...

Не ясен код a^=b^=a^=b - C++
Здравствуйте! Есть такой код #include &lt;stdio.h&gt; main(void) { int a=5; int b=7; a^=b^=a^=b; ...

мне не ясен цикл do while - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; void drill(); int count; // count and...

Не ясен смысл функции. Деревья. - C++
Доброго времени суток. Не могу понять смысла функции F2. #include &lt;stdio.h&gt; struct tree { int val; tree *child,*next; ...

Синтаксис - C++
Кусок кода на C++. Помогите разобраться что означает в данном случае последовательность символов &quot;|=&quot; ? UDF_RC CForm1Class::CForm1(...

Синтаксис - C++
Просмотрел несколько видеоуроков на ютюбе, пользователь использовал строки char s и char *s. Собственно вопрос, в чем различие если имеется...

3
Nick Alte
Эксперт С++
1640 / 1012 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
16.03.2011, 19:14 #2
Это не статическая переменная, а тип, встроенный в класс. Пример:
C++
1
2
3
4
struct InternalType {
    typedef int type;
};
InternalType::type t = 0; // Переменная t имеет тип int
1
Evg
Эксперт CАвтор FAQ
18248 / 6373 / 438
Регистрация: 30.03.2009
Сообщений: 17,640
Записей в блоге: 28
16.03.2011, 19:17 #3
list<int> в данном случае имя класса, а const_iterator - имя типа, определённое внутри класса. Грубо говоря, что-то типа такого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
class T
{
  public:
    typedef int MyType;
};
 
// Ошибка, т.к. имя MyType вне класса не доступно, поскольку класс
// задаёт в том числе и область видимости
MyType x;
 
// Так правильно
T::MyType x;
1
redline15
16.03.2011, 19:24 #4
Спасибо, ребята! Первый раз с таким сталкиваюсь, а то автор книги, по кот. я учусь не посчитал нужным объяснить этот момент
16.03.2011, 19:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2011, 19:24
Привет! Вот еще темы с ответами:

Синтаксис - C++
int x = 5; 0 = x+x; Что это такое и почему после этого x равно 10 ? Не понимаю вообще записи. Даже если предположить что x == 0...

синтаксис - C++
Только начали изучать С++. До этого писали на Pascal в Lazarus и Delphi. Подскажите, пожалуйста, как правильно задать промежуток в C++,...

Синтаксис в c++ - C++
Для чего в описание класса используется &quot;:: &quot;?

STL - C++
Задача: сторонами треугольников и прямоугольников являются цветные (red, green, blue) lego-палстины с соответствующим количеством узлов....


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

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

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