55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
1

Как для класса написать перегруженный оператор new?

16.07.2013, 14:12. Показов 578. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
пробую таким способом, но ошибка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class X
{
public:
    X(int x) :mX(x) {  }
 
    void SetX(int x)  { mX=x; }
    int GetX() const  { return mX; }
    void *operator new(size_t size, void *p)  { return p; }
 
private:
    int mX;
};
 
 
main.cpp:
void *buf = reinterpret_cast<void *>(0xF00F);
X *p2 = new(buf)X;  // error C2512: X: нет подходящего конструктора по умолчанию
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2013, 14:12
Ответы с готовыми решениями:

Не работает перегруженный оператор + для класса динамической матрицы
Подскажите, почему не работает перегруженный + для складывания двух матриц одного размера. ...

Перегруженный оператор сдвига '<<' не функции-члена класса для объекта ostream
Добрый день. В учебнике попалось на первый взгляд простое задание: #include &lt;iostream&gt; int...

Определить перегруженный бинарный и унарный оператор* для класса "Комплексное число"
Как можно реализовать перегруженный бинарный и унарный оператор* для класса &quot;Комплексное число&quot;?

Перегруженный оператор () для std::set
Зачем в СТЛ в контейренах типу SET и других перегружать оператор () вот код struct...

5
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
16.07.2013, 14:16 2
Потому что конструтора по умолчанию нет
C++
1
X *p2 = new(buf)X(5);
Так прокатит?
0
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
16.07.2013, 14:44  [ТС] 3
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
X *p2 = new(buf)X(5);
При запуске программы сразу выскакивает ошибка. Необработанное исключение win32

Добавлено через 24 минуты
up.
0
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 539
16.07.2013, 16:26 4
А вы что этим вообще делаете:
Код
void *buf = reinterpret_cast<void *>(0xF00F);
X *p2 = new(buf)X(5);
?
вернее, вы понимаете что вы этим делаете?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.07.2013, 16:32 5
Цитата Сообщение от BigLow Посмотреть сообщение
C++
1
void *buf = reinterpret_cast<void *>(0xF00F); X *p2 = new(buf)X;
Чего Вы этим хотели добиться? Записать по адресу 0xF00F система, скорее всего, не даст.
0
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 539
16.07.2013, 16:34 6
курните этого:
http://www.amse.ru/courses/cpp2/2011_03_21.html
1
16.07.2013, 16:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2013, 16:34
Помогаю со студенческими работами здесь

Перегруженный оператор ввода/вывода для struct
Доброго времени суток, форумчане! У меня возник вопрос с перегрузкой оператора ввода на с++...

Класс для работы с матрицами - Что дает перегруженный оператор индексирования?
Есть работающая программа, которая имеет: конструктор с параметрами, который заполняет матрицу...

Как убрать символ новой строки, применяя перегруженный оператор <<?
Друзья! Ну то есть формируются строки хитрым способом (не вручную, лучше не углубляться в это) ...

Как создать перегруженный оператор [] как аналог индексатора C# ?
Как создать перегруженный оператор как аналог индексатора C# ? Пример построен на базе ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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