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

Шаблонные классы. Присвоение к указателю и приведение типов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ dll http://www.cyberforum.ru/cpp-beginners/thread929606.html
1. Можно ли использовать DLL, созданную на одном языке программирования в программе на другом языке? 2. Я так понял, DLL работает только под Windows. Есть ли возможность сделать библиотеку функций, чтобы ее можно было использовать в любой ОС, но так чтобы у пользователя библиотеки не было доступа к исходному коду?
C++ Шаблоны и параметр по умолчанию Добрый день. Вроде всё делаю по учебнику, но компилятор не пропускает: #include <iostream> #include <vector> #include <cstdlib> template<class T> bool DefaultComparand(const T &, const T &); template<class T, class Function = DefaultComparand<T>> void Ssort(std::vector<T>& base, Function fn = DefaultComparand<T>() ) http://www.cyberforum.ru/cpp-beginners/thread929600.html
C++ Указатель вне корректного диапазона
void f(T a) { T v; T p* = &v; p--; *p = a; // тут p вне корректного диапазона, почему? } объясните этот момент плиз, я так понял, что когда мы дикрементируем указатель (p--), то т.к. указатель ссылался на начальный элемент массива типа T, то теперь он может ссылаться на другой тип, типа вышел из корректного lиапазона. Но почему не будет работать присваивание корректного адреса. Или...
C++ Погрешность вычислений
Читаю книгу Дейтелов "Как программировать на С++", попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из этих данных вычислять миль/галлон и вычислить средний расход бензина, когда закончится ввод. Вроде все сделал правильно, но когда ввожу данные которые приведены в качестве примера у авторов, у меня средний расход считается почему - то с очень большой...
C++ Битовые операции http://www.cyberforum.ru/cpp-beginners/thread929550.html
Здраствуйте, помогите, пожалуйста! Надо написать три функции, используя только битовые (для первых двух) и только битовые и арифметические операции (для третей), которые: 1) Функция, которая возвращает 1, если значения битов в двух заданых позициях беззнакового длинного целого числа совпадают. 2) Функция, которая меняет местами соседние группы из 16 битов в заданом беззнаковом длинном...
C++ виртуальные базовые классы класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? попитался реализовать... // Using virtual base classes. #include <iostream> using std::cout; подробнее

Показать сообщение отдельно
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
28.07.2013, 12:12     Шаблонные классы. Присвоение к указателю и приведение типов
это была не критика а факт.
типы SomeTeplate<Base> и SomeTemplate<Derived> - в общем случае ни как между собой не всязаны с точки зрения компилятора, как бы близко в иерархии между собой не находились Base и Derived. Чтобы можно было безопасно кастить - нужно смотреть на реализацию и менять ее под этот кастинг если там сейчас этого нет.
Если бы былоо так:
C++
1
2
3
4
5
6
7
8
9
template <class T>
class SomeTemplate : public T
{
};
или
template <class T>
class SomeTemplate : public SuperBase
{
};
, то проблем с кастом не возникло. А реинтерпрет касты или си стайл касты всегда можно заюзать, только не факт что из этого получится что-то хорошее.
 
Текущее время: 18:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru