Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нарушение прав доступа Почему иногда выдает ошибку: Нарушение прав доступа? int x = 6, y = 4, z = 2; char *__arr = new char{0}; char **_arr = new char* {0}; char ***arr = new char** {0}; for (int i = 0; i < x*y*z; i++)__arr = i; for (int i = 0; i < y; i++)_arr = __arr + i * x * z; https://www.cyberforum.ru/ cpp-beginners/ thread2471702.html Написать программу для расчета цены за платную дорогу C++
Доброго времени суток. Написать программу для расчета цены за платную дорогу. Параметры транспорта находятся в шестизначном id: - первое число - тип двигателя: gas (1) or diesel (2) - второе - тип шин: regular (1) or studded (2) - третье - тип фар: incandescent (0), halogen (1), or LED (2) - последние 3 - позиция в списке Алгоритм расчета платы: - базовая плата, зависящая от типа...
C++ Как получить то, что выводит функция system https://www.cyberforum.ru/ cpp-beginners/ thread2471681.html
Всем привет! Я тут сидел и думал , аж голову сломал , можно ли как то получить то, что выводит команда system? А если да , то как?
C++ Вывести массив чисел в обратном порядке Доброго времени суток. Дана последовательность положительных чисел. Вывести массив этих чисел в обратном порядке. -1 указывает на конец строки. Пример: Input: 0 1 2 3 4 5 6 7 8 9 -1 Output: 9 8 7 6 5 4 3 2 1 0 -1 #include "stdafx.h" #include <iostream> #include <vector> https://www.cyberforum.ru/ cpp-beginners/ thread2471676.html
Удаление одинаковых строк из массива строки C++
В программе много недочётов, помогите исправить. 1) если задать матрицу у которой 3 и более равных строк и выбрать "удалить все одинаковые строки кроме одной" то в итоге удалиться только одна стока, а остальные останутся(скрин 1). 2) если задать матрицу у которой 3 и более равных строк и выбрать "удалить все одинаковые строки" то в итоге удалиться две стоки, а остальные останутся, и к тому же...
C++ Возможности функций в C++ https://www.cyberforum.ru/ cpp-beginners/ thread2471667.html
В интернете есть такой пример для общего описания функций #include "stdafx.h" #include <iostream> using namespace std; void fun() //описание функции { //тело функции состоит из одного оператора //который выводит на экран звездочки и пробелы cout<<"* "; }
C++ XOR шифрование не работает с символами одного алфавита Написал простую программу для шифрования текста из файла ключом введенным с клавиатуры, зашифрованная строка записывается в файл, при расшифровке файла считывается зашифрованная строка и считывается ключ из файла. Если начальный текст который необходимо зашифровать на русском языке, а используемый ключ к примеру на английском, то все четко работает. Но если и текст и ключ на русском, то при... https://www.cyberforum.ru/ cpp-beginners/ thread2471660.html Какой контейнер выбрать для символов? C++
Добрый день, уважаемые коллеги вопрос. Нужно в массив vector по буквам записывать текст из файла vector<std::string>m; или лучше vector<char>m; Вопрос в том, что в дальнейшем мне возможно придется воспользоваться методом вектора m.clear и m.push_back(buffer);. Что посоветуете, юзать для посимвольного добавления vector<std::string>m; или лучше vector<char>m; Добавлено через 4 минуты Ведь...
C++ Выбрать автомобили не старше 5 лет и с расходом топлива менее заданного Массив структур содержит информацию о 10 автомобилях: модель,стоимость, год выпуска,расход топлива на 100 километров пути.Считать данные с файла и вывести автомобили, не старше 5 лет и имеют расход топлива, что не превышает указанную с клавиатуры величину.(создать код задачи) https://www.cyberforum.ru/ cpp-beginners/ thread2471642.html C++ Как создать трехмерный массив из одномерного? https://www.cyberforum.ru/ cpp-beginners/ thread2471641.html
Вот первый раз, наверное, за ~год столкнулся с тем, что мне нужен 3-х мерный массив. Создать я его решил, конечно же, динамическим, по типу того, как создавал 2-х мерный: int row = 5, col = 8; char *_arr = new char; char **arr = new char*; for(int i = 0; i < row;i++) arr = _arr + i * col; Вот по такому же методу пытался создать 3-х мерный. Что-то вообще не получается... Путаюсь...
C++ App.exe has triggered a breakpoint
Здравствуйте. Я пытаюсь создать класс Management для управления студентами. Реализую функцию добавления нового студента в список, но программа выбрасывает на строке освобождения памяти под временный массив. Мне нужно реализовать именно через массивы, а не векторы или что-то подобное. class Management { private: Student* studenten; int size; public: Management() : studenten(0), size(0)...
C++ Получить новый массив из элементов данного массива, не меньших первого элемента данного массива https://www.cyberforum.ru/ cpp-beginners/ thread2471621.html
Дан массив действительных чисел получить новый массив из элементов данного массива не меньших первого элемента данного массива. Элементы второго массива расположить в обрат
3 / 3 / 1
Регистрация: 02.03.2013
Сообщений: 231
0

Конструктор копирования для шаблонного класса - C++ - Ответ 13656755

15.06.2019, 09:00. Показов 633. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу написать конструктор копирования для следующего класса:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
template <typename T, typename A = std::allocator<T>>
struct vector_base
{
  A    allocator_;
  int  size_;
  int  space_;
  T*   data_;
 
  vector_base(A const& alloc, int n)
      :allocator_(alloc)
  {
    if (n > 1)
    {
      data_ = allocator_.allocate(n); size_ = 0, space_ = n;
    }
    else
    {
      data_ = allocator_.allocate(8); size_ = 0, space_ = 8;
    }
  }
 
  ~vector_base() {allocator_.deallocate(data_, space_);}
};
class vector : protected vector_base<T, A> 
{
vector(vector<T, A> const &v);
};
 
template<typename T, typename A>
vector<T, A>::vector(const vector<T, A> &other)
  : allocator_(other.allocator_), size_(other.size_), space_(other.space_), data_(other.allocator_.allocate(other.space_))
{
  std::copy(other.data_, other.data_ + other.size_, this->data_);
}


Компилятор выдаёт следующую ошибку:
error: class ‘vector<T, A>’ does not have any field named ‘allocator_’
: allocator_(other.allocator_), size_(other.size_), space_(other.space_), data_(other.allocator_.allocate(other.space_))

Как это можно поправить?

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

Конструктор копирования шаблонного класса
Всем доброго времени суток! Язык С++ изучаю относительно недавно и столкнулся с задачей, которую не...

Конструктор копий для шаблонного класса(связный список)
Не совсем понятно как копировать объекты из динамической памяти, в частности правильная реализация...

Конструктор копирования для класса стек
Почему не хочет работать конструктор копирования? struct Item { int value; Item *next;...

Cделать конструктор по умолчанию и копирования для класса
Вот у меня класс строка: class strg { char *str; int len; public: strg(); strg(const...

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

Конструктор копирования для динамического объекта класса приемника
class first_class { public: first_class(int q) { m_q=q; cout&lt;&lt;&quot;First class say...

Конструктор копирования для класса с указателем на абстрактный класс
Всем привет. Как реализовать конструктор копирования для класса Foo? class Base { public: ...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this-&gt;iType_act =...

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

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