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

Поясните по шаблонам - C++

Восстановить пароль Регистрация
 
anti-k
 Аватар для anti-k
226 / 74 / 23
Регистрация: 17.07.2015
Сообщений: 774
Завершенные тесты: 1
17.01.2016, 18:30     Поясните по шаблонам #1
Читаю Солтера, а именно шаблоны.
Наткнулся на "некоторые компиляторы требуют что бы определения шаблонных методов помещались в определения класса встраиваемым образом", у меня VS15(если бы я был прилежным новичком и пользовался компилятором был бы умнее и матерей, но пока как есть), так вот вызов шаблонного метода не видит private полей, в то время как обычный метод шаблонного класса все ест. Если сделать public, тоже все чикает и брякает. Это у меня ошибка где то еще или в визуал надо реализовать такие вещи в классе? вот объявление класса(примерно как у Солтера)
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
using namespace std;
template<typename T>
class grid
{
public:
    grid(int intWidth= kDefaultWidth,int inHeight=kDefaultHeight);
    grid(const grid<T>&src);    
    template<typename E>
    grid(const grid<E>&src)
    grid<T>&operator=(const grid<T>&rhs);
    template<typename E>
    grid<T>&operator=(const grid<E>&rhs);
    void setElementAt(int x, int y, const T& inElem);
    T&getElementAt(int x, int y);
 
    const T& getElementAt(int x, int y)const;
 
    int getHeight()const { return mHeight; }
    int getWidht()const { return mwidth; }  
    ~grid();
    static const int kDefaultWidth = 10;
    static const int kDefaultHeight = 10;
private:
    void copyFrom(const grid<T>&src);
    template<typename E>
    void copyFrom(const grid<E>&src);
    T**mCells;
    int mHeight, mWidth;
 
};
Добавлено через 25 минут
Разобрался. Это была вспышка моей шизофрении, прошу модераторов удалить этот топик.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2016, 18:30     Поясните по шаблонам
Посмотрите здесь:

C++ вопрос по шаблонам
Глупый вопрос по шаблонам C++
C++ Поясните код
C++ Поясните по указателям
Необходим совет по шаблонам C++
C++ программка по шаблонам
C++ Поясните на пальцах)
C++ Передача параметров по значению и по константным ссылкам применительно к шаблонам

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5948 / 5553 / 1785
Регистрация: 18.12.2011
Сообщений: 14,192
Завершенные тесты: 1
17.01.2016, 19:25     Поясните по шаблонам #2
anti-k,
П.4.11.Правил гласит:
Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ.
anti-k
 Аватар для anti-k
226 / 74 / 23
Регистрация: 17.07.2015
Сообщений: 774
Завершенные тесты: 1
17.01.2016, 20:34  [ТС]     Поясните по шаблонам #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
zss, Ok Сергей Сергеевич,
Значится проблема в следующем:
Как говорят в Одессе" Дело было не в бабине - бобибоб сидел в кабине "(Visual не виноват);
Шаблонные параметры не являющиеся типами, становятся частью спецификации реализуемых объектов
(о чем в принципе пишут всевозможные печатные и не только издания, но я этого не замечал).
Иными словами
C++
1
2
3
4
5
6
7
8
9
10
11
template<typename T,int a,int b>
class ZZZ
{
...
}
ZZZ<int,10,10>a;
и
ZZZ<int,10,11>b;
РАЗНЫЕ  типы!!
 
В общем так то(не знаю кому это поможет).
Yandex
Объявления
17.01.2016, 20:34     Поясните по шаблонам
Ответ Создать тему
Опции темы

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