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

Выбор шаблонного варианта для аргумента-массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поток не сигнализирует событием о своем окончании http://www.cyberforum.ru/cpp/thread1272738.html
Всем привет, нужна помощь задача такая. Есть метод у меня (mnThread) который постоянно поставляет данные, процедура (get_data) эти данные получает. Как только данные получены я устанавливаю событие и по идее должен перейти к другому методу по обработке данных.. Но что-то идёт не так.. максимум попадаю я в метод обработки (process) только один раз, почему пока не понимаю... ниже код static int...
C++ Не могу понять как исправить ошибку #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; const int n = 10; class Library http://www.cyberforum.ru/cpp/thread1272081.html
Помогите построить факториал в MFC C++
Помогите построить факториал в MFC. Целый день капаюсь в уроках, но так ничего не вышло Добавлено через 2 часа 59 минут делаю по примеру http://kvodo.ru/visual-c-mfc-osnovnyie-printsipyi-razrabotki.html и останавливась там где код функции ввести. Когда его ввожу и запускаю, кнопка все равно пишет "бла бла бла" а не результат
C++ Как "засунуть" классы в .dll ?
Добрый вечер! У меня имеется классовая иерархия, базовый класс сотрудник, наследники программист, экономист, электронщик и т.п. Сделал базу данных с помощью (vector.h) , и в main заполняю БД, и потом работаю с ней ( вывожу на экран нужные поля, сортирую так, сортирую эдак ). По заданию мне надо "Описание классов реализовать в Classes.dll, непосредственно сам список в Base.dll. Вызовы в...
C++ Информация по Button, Panel, Label, TextBox в VS2010 http://www.cyberforum.ru/cpp/thread1270298.html
Среда visual c++ 2010 для работы с графическим интерфейсом. Компоненты среды программирования(свойства,события,методы,пример использования) Button, Panel, Label, TextBox. Заранее спасибо за ответ.
C++ Уничтожение файлов и папок, без возможности восстановления Здравствуйте! Собственно это моё задание "Написать windows-приложение для гарантированного удаления файлов(каталогов) без возможности восстановления специализированным ПО". Нашла на википедии информацию по алгоритмам уничтожения: Википедия: "Уничтожение данных" 1.Вопрос собственно в реализации: с чего начать. 2.И может есть у кого какая-нибудь ещё полезная литература на эту тему? 3.Так же... подробнее

Показать сообщение отдельно
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
12.10.2014, 02:28     Выбор шаблонного варианта для аргумента-массива
Цитата Сообщение от IGPIGP Посмотреть сообщение
Но синтаксически они: int &var_name, то есть идентичны. Я не большой знаток и нигде не видел, чтобы писалось, что такая идентичность, - закон, но думал, что так и есть. Разубеди меня
Не буду разубеждать, потому что эти выкладки не относятся к теме вопроса

Цитата Сообщение от IGPIGP Посмотреть сообщение
робко предполагаю, что компилятор который допускает преобразование массива к ссылке T& не должен бы этого делать.
Ты не читаешь что я тебе пишу.
Это меня печалит.

Давай еще раз:
C++
1
2
3
4
5
    typedef int T [100];
 
    int a[100];
 
    T & ar = a;
Аналогично с шаблоном и изначальным примером. Вместо T подставляется int[100] (реальный тип аргумента), добавляем ссылку - получаем ссылку на массив.

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a[100];
 
template <typename T>
void foo(T & a);
 
// Вызываем
foo(a);
 
// Выводится T = int[100]
 
template <typename T = int[100]> //T выведен
void foo(T & a); //<-- к T добавляется ссылка
 
//Итого, тип аргумента:
void foo(int (&a)[100]);
В общем я не знаю как еще объяснять

Добавлено через 13 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
Ссылка на массив это же не ссылка на тип (элементов массива).
Ссылка на массив - это именно ссылка на тип. Где тип - это тип массива, включающий в себя тип элементов и размерность, т.е. тип составной.
Сбивает с толку чудная запись типа посередине? Ну так это синтаксическая фишка такая в С\С++. В С\С++ объявление можно представить в виде prefix Name suffix, где префикс и суффикс — какие-то строки, вместе образующие правильное выражение. Соответственно, производные типы получаются добавлением операторов (*, &, const, volatile, (), []) к префиксу/суффиксу.
По поводу "недо...". Функции и массивы в С++ непервоклассные объекты (non first class objects), отсюда их свойства: функции нельзя создавать в рантайме. Объект с типом "массив" в рантайме тоже создать нельзя (выражение new возвращает указатель). Функции не копируются, вместо этого приводятся к указателю на функцию, с массивами аналогично.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru