Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 13:44   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это не различие компиляторов, везде так, наверно и в стандарте написано.

Реализация шаблонов должна быть либо в том же файле, либо если в отдельном, то как-то более сложно, чем для не шаблонов. Что и как именно я не помню, выше аж две ссылки с кучей подробных объяснений на двух языках.
Цитата:
Я не знаю и никогда не знал английский язык, но это не мешает мне единолично писать проекты, которые используются на государственном уровне, включая в РФ.
Это как те, кто гордятся отсутствием знаний математики, которое тоже не мешает?
Как можно знать, что вам не мешает что-то, чего вы не знаете? Вдруг бы уже на межгалактическом уровне писали если б знали?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.03.2016 в 14:25.
Alex11223 вне форума Ответить с цитированием
Старый 13.03.2016, 14:14   #12
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
В CPP нужно прописать #include "myfile.h"
прописано изначально

Код:
#include "Array.h"
----
Такая реализация работает

array.h
Код:
#ifndef Array_H
#define Array_H
#pragma hdrstop

template <class T> class array
{
private:
  int count;      // число элементов
public:
  T *  data;	   // указатель на первый элемент массива
public:

  array() // Конструктор
  {
     count = 0;
     data  = 0;
  }

  ~array(){Clear();}  // Деструктор

  // Удаление всех элементов
  void Clear()
  {
    if (data) delete [] data;
    count= 0;
    data = 0;
  }

  // добавить элемент. Возвращает число элементов массива
  int Append(T& x) 
 {
    T * p = new T[count+1];
    if (count)
      memcpy(p, data, sizeof(T)*count);
    memcpy(&p[count], &x, sizeof(T));
    count++;
    delete [] data;
    data = new T[count];
    memcpy(data, p, sizeof(T)*count);
    delete [] p;
    return count;
  }  
};

#endif
такая, не работает

array.h
Код:
#ifndef Array_H
#define Array_H
#pragma hdrstop
template <class T> class array
{
private:
  int count;     
public:
  T *  data;	  
public:
  array();
  ~array();
  void Clear();
  int Append(T& x) ; 
};
#endif
array.cpp

Код:
#include "Array.h"

#pragma package(smart_init)

template <class T> array<T>::array()
{
   count = 0;
   data  = 0;
}

template <class T> array<T>::~array()
{
  Clear();
}

template <class T> void array<T>::Clear()
{
   if (data) delete [] data;
    count= 0;
    data = 0;
}

template <class T> int array<T>::Append(T& x)
{
    T * p = new T[count+1];
    if (count)
      memcpy(p, data, sizeof(T)*count);
    memcpy(&p[count], &x, sizeof(T));
    count++;
    delete [] data;
    data = new T[count];
    memcpy(data, p, sizeof(T)*count);
    delete [] p;
    return count;
}
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 13.03.2016, 14:17   #13
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Алекс, прошу покинуть мою тему ибо в противном случае мне придётся обратится к администрации форума
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 13.03.2016, 14:22   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну ок, жди гуру, которые персонально объяснят, раз лень перейти по любой из первых ссылок в гугле и прочитать уже давно написанные объяснения.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.03.2016, 14:25   #15
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну ок, жди гуру, которые персонально объяснят, раз лень перейти по любой из первых ссылок в гугле и прочитать уже давно написанные объяснения.
пререшёл , переписал. Результат показал постом выше. По ходу "пояснения" писал такой же "гуру" как и ты который ничего не знает ничего не помнит, за то в совершенстве владеет английским...
Слушай, а ты часом не ошибся форумами? может этот твой - http://www.sovsibir.ru/news/93726 ?

п.с.
Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
А вот и не так. Просто возьми и проверь.
Smitt&Wesson такие товарищи могут проверять только за трибуной, оралом и на бумаге с книжкой в руках. В простонародии их называют: теоретики-гуманитарии.
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 13.03.2016 в 14:39.
JUDAS вне форума Ответить с цитированием
Старый 13.03.2016, 14:40   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

У меня какой-то не такой гугл? На английском конечно более подробно и нет линукс.орга для иллюстрации анекдота про американский/еврейский/русский форум, но вполне достаточно и на русском:


Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.03.2016 в 14:43.
Alex11223 вне форума Ответить с цитированием
Старый 13.03.2016, 14:46   #17
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
но вполне достаточно и на русском:
не достаточно. Указанная тобой ссылка бред сумашедшего, который так же понимает в С++ как моя комнатная собака.
вывод, на скрине видна репутация сообщения +4(таких же продвинутых как автор) против -13(тех кто в теме)
Ещё ссылки можешь предложить, желательно на работоспособные примеры реализации, а не пустое содрогание воздуха и печатный спам по типу предложенного тобой в ссылке выше
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 13.03.2016, 14:58   #18
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

JUDAS, не переживай, форум тут не особо программерский, поэтому если ждешь ответа специалиста, это не здесь. даже Alex11223 про это знает: "Ну ок, жди гуру, которые персонально объяснят".

в целом, ответ на твой первый вопрос - нет. по той причине, что шаблон - это выкоуровневый макрос, и понятно, что у макроса может быть только определение, но нет декларации. те кто считают, что шаблон это не макрос, пытаются разделить его на декларацию и определение, и придумывают колымаги и костыли, как по тем ссылкам. вот такая фигня.
f.hump вне форума Ответить с цитированием
Старый 13.03.2016, 14:58   #19
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от JUDAS;1586414
[B
Smitt&Wesson[/B] такие товарищи могут проверять только за трибуной, оралом и на бумаге с книжкой в руках. В простонародии их называют: теоретики-гуманитарии.
Смешно, однако . Ну-ну.
Цитата:
Сообщение от f.hump Посмотреть сообщение
что шаблон - это выкоуровневый макрос, и понятно, что у макроса может быть только определение, но нет декларации.
Шито? Пипец!
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 13.03.2016 в 15:01.
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.03.2016, 15:08   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
на скрине видна репутация сообщения +4(таких же продвинутых как автор) против -13(тех кто в теме)
это кол-во серебряных и медных медалек.

Цитата:
понятно, что у макроса может быть только определение, но нет декларации. те кто считают, что шаблон это не макрос, пытаются разделить его на декларацию и определение
Страуструп тоже не шарит?


Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.03.2016 в 15:11.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблоны в программировании VS Шаблоны в реальной жизни Alar Свободное общение 11 05.11.2014 10:24
шаблоны zla9_kolu4ka Общие вопросы C/C++ 5 03.03.2014 11:00
Шаблоны _Freak_ Общие вопросы Delphi 9 10.01.2014 14:02
Шаблоны с++ ftg Помощь студентам 0 25.12.2013 23:46
Шаблоны Freddi Krjuger Общие вопросы C/C++ 6 14.11.2010 20:55