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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
#1

Создайте класс со специальной версией оператора new, получающей второй аргумент типа string - C++

24.12.2013, 11:30. Просмотров 259. Ответов 1
Метки нет (Все метки)

Создайте класс со специальной версией оператора new, получающей второй аргумент типа string. Этот класс должен содержать переменную static vector<string>, в которой сохраняется аргумент. Специальная версия new должна выделять память обычным образом. В main() вызовите new со строковыми аргументами, содержащими описания вызовов (попробуйте воспользоваться препроцессорными макросами _FILE_ и _LINE_).

есть соображения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 11:30     Создайте класс со специальной версией оператора new, получающей второй аргумент типа string
Посмотрите здесь:

Создайте класс String - C++
Создайте класс String с операциями +, +=, =, ==, !=, &gt;, &lt;, &gt;=, &lt;=

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? - C++
#include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; //using namespace std; class string { private: int...

Создайте класс, имитирующий работу биллинговой системы сотового оператора (Не могу разобраться с ошибкой) - C++
вот текст программы Создайте класс, имитирующий работу биллинговой системы сотового оператора. Объектом данного класса является...

Создайте класс Тест, содержащий две закрытые переменные типа int с именами count и max - C++

С++ класс (создайте класс с именем Complex для выполнения в арифмитических операий с комплексными числами)) - C++
Кто сможет помогите пожалуйста! (Класс Complex). Создайте класс с именем Complex для выполнения в арифмитических операий с...

Забиндить второй аргумент функции, используя std::bind2nd - C++
Как забиндить свою функцию с двумя аргументами в функцию с одним аргументом? Вот пример в котором нужно сделать для b: #include...

Аргумент типа double несовместим с параметром типа double - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;math.h&gt; using namespace std; #define c 40 #define n 5 double po(double...

Аргумент типа double несовместим с параметром типа double* - C++
Функция function должна возвращать количество элементов массива, значение которые превышает значение средне арифметического элементов...

Запись информации из вектора типа string в вектор типа double - C++
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе типа стринг есть как буквы так и числа ,...

Класс как аргумент функции - C++
Доброго времени суток:) Набрёл на такой пример в openGL и не могу понять как он робит, подскажите. Вот описание ф-ции: void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
24.12.2013, 12:27     Создайте класс со специальной версией оператора new, получающей второй аргумент типа string #2
helloy,
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
35
36
37
38
#include <iostream>
#include <string>
#include <vector>
#include <new>
 
class A
{
public:
   void* operator new(size_t size)
   {
      return ::operator new(size);
   }
   void* operator new(size_t size, std::nothrow_t hint)
   {
      return ::operator new(size, hint);
   }
   void* operator new(size_t size, void* place)
   {
      return ::operator new(size, place);
   }
   void* operator new(size_t size, const std::string& value)
   {
      values.push_back(value);
      return ::operator new(size);
   }
   static std::vector<std::string> values;
};
 
std::vector<std::string> A::values;
 
int main()
{
   A* a = new (std::to_string(__LINE__)) A;
   A* b = new (__FILE__) A;
   for (const std::string& v : A::values) std::cout << v << std::endl;
   delete a;
   delete b;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru