Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача с файлом https://www.cyberforum.ru/ cpp-beginners/ thread1401653.html
Дан файл определить сколько раз встречается в нем слово вывести на экран номер строк где это слово найдено(программа находит слово не зависимо от регистра) Я написал пррограмму но не знаю как определить номера строк в которых встречаться слово подскажите как это сделать или функцию построчного считывания файла переход на следующую строку #include <iostream> #include <fstream> using namespace...
Конвертирование типов данных C++
Нужно обработать данные. Пропустить их через кучу функций, каждая из них требует свой тип данных. Вовремя компиляции постоянно сталкиваюсь с тем что компилятор ругается "невозможно преобразовать одно в другое". Из этого я сделал вывод что нужно преобразовывать один тип данных в другой, что бы результат выполнения одной функции можно было поместить в следующую. Так вот мне надоело гуглить и...
C++ Сравнивание двумерного символьного динамического массива со словом https://www.cyberforum.ru/ cpp-beginners/ thread1401629.html
Здравствуйте! Пожалуйста, помогите разобраться в этом условии: if (dictionary]==*word) count++; Здесь dictionary - двумерный символьный динамический массив, *word - слово, countchar - это кол-во символов слова, которое записано в эту ячейку. Проблема в том, что если есть два слова 'стол' и 'стул', то count=2, хотя должно быть count=1 и count=1, а dictionary]='стол' и dictionary]='стул'. Я...
C++ Найти слово в файле Помогите написать программу: дан файл, найти в нем слово не зависимо от регистра и вывести на экран сколько раз встречается данное слово, и номер строк на которых оно встречается https://www.cyberforum.ru/ cpp-beginners/ thread1401620.html
Считывание вещественной матрицы из файла C++
Я нашел такую прогу, которая считывает из текстового файла матрицу. Проблема в том, что первый раз оно выводит элементы так, как есть. То есть, дробная часть, целая. А вот если потом вызвать, к примеру, первый элемент матрицы, то оно выведет только целую часть этого числа. #include <iostream> #include <fstream> using namespace std; int main() { int const n=4; int i=0;
C++ Поиск и сортировка нужных слов из файла https://www.cyberforum.ru/ cpp-beginners/ thread1401585.html
В тексте найти и вывести фамилии заканчивающиеся на "ко". Фамилиями считаются слова начинающиеся с большой буквы. Регистр не учитывать и отсортировать по алфавиту. При этом считывание данных из файла и результат тоже в файл.
C++ Двухсвязный список C++ https://www.cyberforum.ru/ cpp-beginners/ thread1401565.html
Здравствуйте. Нужна помощь: написал вручную двухсвязный список, но работает он не корректно. Данные в поля объекта класса пишутся, сам объект добавляется, но дальше все менюшки начинают сыпаться. STL преподу не нравится, по его словам "нам это рано", вот и пришлось изобретать велосипед по новой. Прога должна добавлять, удалять искать и показывать содержимое спика. В функции поиска оно должно...
Составить подпрограмму для поиска данных в массиве C++
Используя подпрограммы создать и вывести массив А (n> 10). элементы массива создаются по формуле z=13.4*cos(fabs(x))*sin(x*x-2.25). Составить подпрограмму для поиска данных в массиве. Критерии поиска: Вычислить произведение всех отрицательных значений массива и определить количество положительных. Сам массив я сделал, но вот с подпрограмами для поиска данных у меня проблемы. Я попытался...
C++ Загрузить матрицу из файла https://www.cyberforum.ru/ cpp-beginners/ thread1401557.html
Доброго времени суток. Знаю, что такой вопрос задавали уже кучу раз. И я пересмотрел все темы, связанные с этим. Нашел только как считывать массив целых положительных чисел. У меня же дробные. К тому же знакопеременные. Поделитесь прогой, пожалуйста, если у кого есть.
C++ Некорректно выводит на экран двумерный массив https://www.cyberforum.ru/ cpp-beginners/ thread1401555.html
Задача: 1.Пользователь определяет размеры таблицы; 2.Заполняет(пользователь) содержимое(десятичные числа); 3.Вывод таблицы на экран; 4.Пользователь вводит число,которое надо найти; 5.Вывод на экран расположение(столбец,строка) всех найденных совпадений. Пишу в Visual Studio 10. Вот мой код: #include "StdAfx.h" #include <stdio.h>
Разнообразное хранение данных C++
Доброго времени суток. Решил потренироваться в программировании и нашел неплохую задачу. Суть в том, чтобы обрабатывать данные о студентах, преподавателях, факультетах, курсах и т.д. Задача разносторонняя, но в основном на ООП. Собственно вопрос: как и в чем лучше хранить такую информацию? Думал создать класс University (Университет), в котором будут хранится структуры (Студент, Преподаватель)...
C++ C++ - Прата задача 6.9 Подскажите пожалуйста в чем ошибка?не обрабатывается условие неправильного ввода имени файла. #include <iostream> #include <fstream> #include <cctype> const int size=80; using namespace std; struct mecenat { char name; double sum; };
36 / 29 / 2
Регистрация: 01.08.2011
Сообщений: 176
0

Шаблонный оператор не шаблонного класса - C++ - Ответ 7376797

23.03.2015, 09:19. Показов 1805. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь создать альтернативный оператор выделения памяти для своей библиотеки. С целью получить возможность передавать дополнительную информацию о типах в свой диспетчер памяти. Сначала сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    template<
        typename T
    > T* _new(
    )
    {
        T* t=_I::_mem_alloc<T>();
        return new(t) T(
            );
    }
 
    template<
        typename T,
        typename P00
    > T* _new(
    P00 p00
    )
    {
        T* t=_I::_mem_alloc<T>();
        return new(t) T(
            p00
            );
    }
Здесь код для конструкторов без параметров и с одним параметром. Для нескольких параметров делается аналогично (у меня в библиотеке сделано максимум на 10 параметров у конструктора). Детали функции-шаблона "_I::_mem_alloc<T>();" здесь не важны. И это работает нормально. Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class TestClass
{
public:
    TestClass(int x)
    {
        std::cout<<x<<std::endl;
    }
    TestClass()
    {
        std::cout<<"null"<<std::endl;
    }
};
 
int main()
{
    TestClass* test_class=_new<TestClass>(7);
    TestClass* test_class0=_new<TestClass>();
    _dlt(test_class);
    _dlt(test_class0);
 
    system("pause");
    return 0;
}
Функция _dlt тоже своя, и с ней проблем нет. Теперь вопрос. Далее, я хочу сделать, чтобы мой оператор понимал ещё квадратные скобки, чтобы можно было создавать массивы. Пока я только сделал аналогичный оператор _newv, где первым дополнительным параметром передаётся размер массива. Но это не очень наглядно. Я бы хотел размер массива передавать в квадратных скобках. Пока единственный вариант у меня как это сделать - создать фиктивный класс-функтор с перегруженным оператором []. Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    class ©new
    {
    public:
        template<typename T> T* operator()()
        {
            return new T();
        }
        ©new& operator[](int size)
        {
            std::cout<<"My mem dispatcher getting array size ="<<size<<std::endl;
            return _new_new;
        }
    }_new_new;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class TestClass
{
public:
    TestClass(int x)
    {
        std::cout<<x<<std::endl;
    }
    TestClass()
    {
        std::cout<<"null"<<std::endl;
    }
};
 
int main()
{
 
    TestClass* tc=_new_new<TestClass>()[5];//ERROR!!!!
 
    system("pause");
    return 0;
}
Это только набросок. Здесь реально размер массива не передаётся, но это дальше дело техники. Главное, чтобы код с таким смыслом компилировался. Но проблема в том, что компилятор ругается на параметр шаблона TestClass в этой строке"TestClass* tc=_new_new<TestClass>()[5];//ERROR!!!!". Если класс сделать не функтором, то этой проблемы не будет, но мне надо обращаться по имени объекта, чтобы не нарушать семантику библиотеки. Вопрос: в какой ещё позе (которая не снилась создателям камасутры) можно использовать C++, чтобы конструкция, аналогичная этой (с квадратными скобками) работала нормально?

Добавлено через 9 минут
Синтаксис с массивами нужен, чтобы потом реализовать такую вещь, как инициализацию массива константой или инициализацию массива другим массивом параметров (чего очень нехватает для стандартного оператора new).

Добавлено через 25 минут

Не по теме:

Был в шоке от того, что знак © компилятор нормально воспринимает в именах, и ещё некоторые подобные знаки с кодами до 255 (но не совпадающие с русскими буквами). Удобно использовать для каких-либо дополнительных соглашений о именовании.



Вернуться к обсуждению:
Шаблонный оператор не шаблонного класса C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2015, 09:19
Готовые ответы и решения:

Чем отличается шаблонный метод класса от шаблонного класса?
Чем отличается шаблонный метод класса от шаблонного класса???????ПЛИЗ!!!!Если можно немного ссылок...

Шаблонный метод шаблонного класса
template &lt;class T1&gt; class A{ public: A(){}; void f(); }; template &lt;class T1,class T2&gt;...

Шаблонный метод присваивания шаблонного класса
привет. в некоторых классах пишут шаблонные методы присваивания, чтобы выполнять нечто такое: ...

Шаблонный метод без шаблонного класса
Доброго времени суток, можно ли сделать подобное? class ClassA { template &lt;class T&gt; T...

8
23.03.2015, 09:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2015, 09:19
Помогаю со студенческими работами здесь

Шаблонный класс от шаблонного класса, ругается компоновщик
абстрактный класс Хэширования template &lt;class typeHashData, class typeHashIndex&gt; class...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор...

Оператор индексации и присваивания для шаблонного класса Vector C++
Было задание разработать шаблонный класс Vector и к нему перегрузить оператор таким боразом, чтобы...

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра?
header.h template &lt;class T&gt; class MyVector { public: void swap(MyVector&lt;T&gt;Vector); }...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru