Форум программистов, компьютерный форум, киберфорум
Наши страницы

templates, STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача со звездочками http://www.cyberforum.ru/cpp-beginners/thread973689.html
Пользователь вводит число, а компьютер должен вывести на экран пирамидку, с такой высотой как число Например, пользователь ввел 3 * ** *** ** *
C++ SDL Отображение текста на экране Вывожу на экран текст формата *.ttf c помощью функции TTF_Render Эта функция может выводить только текст, а вот как вывести значение переменной? // *.h struct C_LoadImages { void ttfInit();... http://www.cyberforum.ru/cpp-beginners/thread973669.html
C++ Странная ошибка
// ConsoleApplication5.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <vector> #include <cmath> #include <math.h> using namespace...
Пользователь вводит вещественные числа x,y,z. Вычислить max(x+y+z, xyz) C++
Составить ДВЕ программы на языке C++ для решения одного из вариантов заданий с применением ОПЕРАТОРА if и с применением условий операции. Пользователь вводит вещественные числа x,y,z.Вычислить...
C++ Вместо своих данных в память вижу воистину неподдающееся объяснению явление какое-то http://www.cyberforum.ru/cpp-beginners/thread973645.html
Привет всем. Учусь кодить на C++. Решил в качестве практики написать линкер. Гружу объектник в память таким кодом: int ObjectFile::Load(char* FileName) { //Выводим имя файла...
C++ namespace std Добрый день. Вычитал что могу использовать любой namespace. Но в другом месте написано что если не использовать std, то не сможет определится, например, cout. Так ли это? И если да, то как... подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
11.10.2013, 01:21
[quote="Убежденный;5166658"]И как в такой list вставить экземпляр типа int ? Например, put(123) не работает.[quote]
Легко.
C++
1
List list; list.put ( new Integer ( 123 ) );
Немного многословно, но мы сделали несколько облегчающих инструментов.
Алсо, иногда, когда скорость (ну или эллегантность кода, что в общем-то было в приоритете) очень и очень критична, делали такое:
C++
1
2
3
4
5
class IntList {
public:
    virtual void put ( int v, int i = 0 );
    virtual int get ( int i );
}
Цитата Сообщение от Убежденный Посмотреть сообщение
А указатель как вставить ? Завернуть его в структуру и унаследовать структуру
от Object ? Вообще, это не опечатка, что Object передается по значению ?
Если не опечатка, тогда как вообще выполняется получение реального типа ?
Не совсем. Это и не опечатка и опечатка. Мы сделали умные указатели внутри Object по типу конверта. Приходилось по особому делать копирующие конструкторы и вообще аккуратно работать с памятью, но в общем и целом, стало даже проще, чем если без этого =)

Вообще, мы хотели ещё попробовать добавить немного рефлексии, но как-то слабо получалось. Не удобно очень. Или макросы страшные появлялсиь, или какие-то списки приходилось создавать. Но с ней всё было бы много круче.
Цитата Сообщение от castaway Посмотреть сообщение
Ну тогда он скорее всего ошибся разделом..
Ну я смотрю, что иницировал здесь неплохую дискуссию.
Цитата Сообщение от ct0r Посмотреть сообщение
Могу с полной уверенностью сказать: переход от чистого ОО к симбиозу ОО и обобщенного программирования дал мне просто огромный левел-ап. Я смог нормально читать и вникать в код буста. Это просто неиссякаемый кладезь полезной информации. Сравнимо с тем, что я всю жизнь сидел дома, а потом внезапно вышел на улицу - новые горизонты, новые и почти неограниченные возможности.
Я читал код буста. И честно - потом долго отходил. Да, там интересно реализованы некоторые вещи. Но при этом понимаешь, что нужно слишком круто владеть таким инструментом, как Си++. Да и ногу лишний раз прострелить проще простого.
В общем, я люблю крайности. Смешивать ООП с обобщённым программированием, как товарищ ct0r предложил - мерзость по сути. Придерживаясь одной идеи нет конфликтов идей, как это часто происходит в Си++.
Цитата Сообщение от ct0r Посмотреть сообщение
В общем я скромно призываю AnyOne697 реализовать какую-нибудь библиотеку буста без призыва шаблонов и показать, насколько увеличилось удобство использования и производительность.
Смотря в какой области. Если в непосредственном использовании, то скорее больше минусов, чем плюсов. Производительность только падает.
Если же в разработки, то она как по маслу. Разделение заявления / реализации - на ура. Убогих темплейтов - минимум.
Цитата Сообщение от Jupiter Посмотреть сообщение
а зачем нам ещё один objective-c ?
Затем, что это не Objective C. ЕМНИП, это вообще не то. Да, он забавный, но всё же немного не то.
Цитата Сообщение от Jupiter Посмотреть сообщение
как я понял то товарищ AnyOne697 предлагает "взять все, да и поделить" унаследовать от Object
Не совсем так. Суперпредок нужен в основном только для того, чтобы избавиться от шаблонов. По крайне менее, в рамках этой темы. И начиналось именно с этого.

Вообще, я тут распинаюсь, а зачем мне это?.. Я же написал, что я прекрасно понимаю мощь темплейтов. Но не нужным мне они, ваши темплейты. Лучше бы доработали мультипоточность или добавили бы нормальные умные указатели (без использования темплейтов - с ними они уже очень давно были). Или добавили бы минимальную поддержку графики (необязательную). Да, снова получается Java. Но Си++ интересен тем, что всегда есть выбор. И это круто. Этим он крут. Из-за этого я не могу полностью с него слезть.

Добавлено через 10 минут
Цитата Сообщение от kamre Посмотреть сообщение
Вот именно что нет в Java "банального агрегатора данных". Ключевое отличие value types от reference types знаете? Попробуйте на Java реализовать эффективный тип данных для комплексных чисел с возможностью выбора базового типа хотя бы из float/double. Эффективный тип данных - это такой, при использовании которого не будет потерь производительности по сравнению с вручную написанным кодом под специальные случаи.
Если не считать незначительные потери на virtual-функции, то можно. Если применить джедайскую магию, тоже можно. Вообще всё можно.
Цитата Сообщение от _stealth_ Посмотреть сообщение
такая общность весьма разная. наследование (public) - Х есть (is) У. включения экземпляра другого класса в класс - X имеет (has) Y (вот не надо сейчас эту тему развивать ). а шаблон такие-то классы обрабатываются по одному и тому же шаблону (при этом они не is и не has).
когда нужно что-то выразить, то просто выбираешь нужно средство.
Как-то одномерно. Давайте хотя бы плоско: X: O, Y: O. То есть X is O, Y is O. Но что есть X и Y?..
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru