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

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

Войти
Регистрация
Восстановить пароль
 
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
#1

Шаблоны - C++

08.07.2015, 12:33. Просмотров 228. Ответов 3
Метки нет (Все метки)

В файле есть такое определение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
template<int32 aMaxLength> class TTextBuffer: public MString
    {
    public:
    /** Construct an empty TTextBuffer object. */
    TTextBuffer() { }
 
    /** Construct a TTextBuffer object from an 8-bit ASCII string. */
    TTextBuffer(const char* aText)
        {
        iLength = 0;
        while (*aText && iLength < aMaxLength)
            iText[iLength++] = *aText++;
        }
 
    // virtual functions from MString
    const uint16* Text() const { return iText; }
 
    private:
    // virtual functions from MString
    bool Writable() const { return true; }
    int32 MaxWritableLength() const { return aMaxLength; }
    uint16* WritableText() { return iText; }
    TResult Resize(int32 aNewLength)
        { return aNewLength <= aMaxLength ? KErrorNone : KErrorTextTruncated; }
 
    uint16 iText[aMaxLength];
    };
 
/** A macro to define a TTextBuffer object from an ASCII string literal. */
#define TTextLiteral(aName,aText) TTextBuffer<sizeof(aText)> aName(aText)
в коде я пишу
C++
1
CartoType::TTextLiteral(layer, "car");
а можно как-то создать переменную layer, а затем ее инициализировать?

Вообще говоря не совсем понимаю как вот это работает
C++
1
#define TTextLiteral(aName,aText) TTextBuffer<sizeof(aText)> aName(aText)
может кто в 2-ух словах объяснить?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 12:33     Шаблоны
Посмотрите здесь:

Шаблоны С++ - C++
template &lt;typename T_sizeCapacity&gt; class SomeClass { public: T_sizeCacity size; }; Как сделать чтобы T_sizeCapacity мог быть...

Шаблоны - C++
Я разбираюсь с ООП в С++ и застрял на шаблонах, будьте добры приведите пример кода, к примеру там.... вес машины и шаблон,(ну вообщем на...

Шаблоны в C++ - C++
Здравствуйте! Написал такой код: #include &lt;QtCore/QCoreApplication&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace...

Шаблоны - C++
Здравствуйте. Читая про шаблоны в Википедии (https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_C%2B%2B) ...

Шаблоны - C++
ругается на строку &quot;friend class List&lt;T&gt;;&quot;, вот что пишет: 1&gt;c:\users\slava\documents\visual studio...

Шаблоны - C++
Не пойму что я неправильно делаю. Как не переделывал, всё равно не получалось. Может кто сможет чем помочь. А задача следующая-надо было...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
08.07.2015, 13:30     Шаблоны #2
Цитата Сообщение от klynxe Посмотреть сообщение
Вообще говоря не совсем понимаю как вот это работает
вызов
C++
1
CartoType::TTextLiteral(layer, "car");
разворачивается в
C++
1
CartoType::TTextBuffer<sizeof("car")> layer("car");
подробнее про макросы можете прочитать например здесь
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
08.07.2015, 13:47  [ТС]     Шаблоны #3
Цитата Сообщение от Cra3y Посмотреть сообщение
разворачивается в
CartoType::TTextBuffer<sizeof("car")> layer("car");
То есть я не могу изменить значение этой переменной?
То есть объявить ее пустой
CartoType::TTextBuffer<sizeof("")> layer("");
а далее проинициализировать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2015, 14:14     Шаблоны
Еще ссылки по теме:

Шаблоны - C++
Создать параметризированные классы List и ListItem. Классы должны содержать конструкторы, деструкторы, функции add, in, remove, getLength,...

Шаблоны - C++
Выполнить задание без использования библиотеки стандартных шаблонов. а) Создать шаблонную функцию поиска по заданному ключу. Функция...

Шаблоны и т.д.( - C++
Создать 2 шаблонные классы с конструктором инициализации и конструктором копирования. Создать третий класс, наследующий свойства из двух...

Шаблоны в C++ - C++
Доброго времени суток! Начал разбираться что такое шаблон и с чем его едят. Загуглил, вставил код из википедии. Ошибка. ...


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

Или воспользуйтесь поиском по форуму:
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
08.07.2015, 14:14     Шаблоны #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от klynxe Посмотреть сообщение
То есть я не могу изменить значение этой переменной?
можно получить указатель на буфер с помощью WritableText(), но нельзя изменить размер этого буфера - он задается на этапе компиляции
можно задать размер побольше
C++
1
CartoType::TTextBuffer<1024> layer("");
Yandex
Объявления
08.07.2015, 14:14     Шаблоны
Ответ Создать тему
Опции темы

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