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

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

Войти
Регистрация
Восстановить пароль
 
redline15
Сообщений: n/a
#1

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

16.03.2011, 18:47. Просмотров 676. Ответов 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++ Синтаксис
мне не ясен цикл do while C++
C++ Непонятный синтаксис
Конструкторы. синтаксис C++
Синтаксис C++
C++ синтаксис
Неправильный синтаксис? C++
Не ясен код a^=b^=a^=b C++
C++ Синтаксис языка
Синтаксис C++
C++ Синтаксис и библиотеки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
16.03.2011, 19:14     Не ясен синтаксис.STL #2
Это не статическая переменная, а тип, встроенный в класс. Пример:
C++
1
2
3
4
struct InternalType {
    typedef int type;
};
InternalType::type t = 0; // Переменная t имеет тип int
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17179 / 5433 / 336
Регистрация: 30.03.2009
Сообщений: 14,720
Записей в блоге: 26
16.03.2011, 19:17     Не ясен синтаксис.STL #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;
redline15
Сообщений: n/a
16.03.2011, 19:24     Не ясен синтаксис.STL #4
Спасибо, ребята! Первый раз с таким сталкиваюсь, а то автор книги, по кот. я учусь не посчитал нужным объяснить этот момент
Yandex
Объявления
16.03.2011, 19:24     Не ясен синтаксис.STL
Ответ Создать тему
Опции темы

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