Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
#1

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

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

пробую таким способом, но ошибка

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2013, 14:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как для класса написать перегруженный оператор new? (C++):

Не работает перегруженный оператор + для класса динамической матрицы - C++
Подскажите, почему не работает перегруженный + для складывания двух матриц одного размера. #include &lt;iostream&gt; #include &lt;iomanip&gt;...

Перегруженный оператор сдвига '<<' не функции-члена класса для объекта ostream - C++
Добрый день. В учебнике попалось на первый взгляд простое задание: #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Hello,...

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

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

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

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

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

Добавлено через 24 минуты
up.
0
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
16.07.2013, 16:26 #4
А вы что этим вообще делаете:
Код
void *buf = reinterpret_cast<void *>(0xF00F);
X *p2 = new(buf)X(5);
?
вернее, вы понимаете что вы этим делаете?
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.07.2013, 16:32 #5
Цитата Сообщение от BigLow Посмотреть сообщение
C++
1
void *buf = reinterpret_cast<void *>(0xF00F); X *p2 = new(buf)X;
Чего Вы этим хотели добиться? Записать по адресу 0xF00F система, скорее всего, не даст.
0
Kukurudza
105 / 86 / 6
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2013, 16:34
Привет! Вот еще темы с ответами:

Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него? - C++
Это указатель на класс figure *f Это перегрузка оператора void figure::operator (int i) { cout &lt;&lt; &quot;(&quot; &lt;&lt; massiv.x &lt;&lt; &quot;,&quot; &lt;&lt;...

Как перегрузить оператор для своего класса? - C++
У меня есть класс, .h class Vertex { public: ~Vertex(); Vertex(); double GetX(); double GetY(); double GetZ(); void...

перегруженный оператор << - C++
подскажите как перегрузить оператор &lt;&lt; для класса как описать само перегружение friend ostream&amp; operator &lt;&lt; (ostream &amp;c, const...

Перегруженный оператор - C++
MathClass = Harry; Раньше я думал, что перегрузка - это предоставление оператору функций, которых, он изначально не имел. Что...


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

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

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