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

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

Войти
Регистрация
Восстановить пароль
 
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
#1

Пользовательский operator new(size_t) - C++

18.06.2014, 20:01. Просмотров 238. Ответов 2
Метки нет (Все метки)

Всем привет!
Подскажите пожалуйста, как так получается, что при перегрузке operator new (например, в пользовательском классе) дальнейший его вызов обходится без параметра size_t.
Например код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Temp {
public:
static void* operator new(size_t, new_handler);
...
};
 
void func () {...}
 
int main()
{
Temp* ptr = new Temp(func);
...
return 0;
}
Все работает, но, как видно из примера, в строке new Temp(func) параметр size_t как-то не понадобился...

Почему так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2014, 20:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пользовательский operator new(size_t) (C++):

Беззнаковый тип size_t: чем различие между size_t, uintptr_t, ptrdiff_t и intptr_t? - C++
В чем вообще его смысл? Разве запись double a = {1,2,3}; int i = 1; *(a+i)+=1; значит, что мы перепрыгивам вперед по...

Class & operator's |Error: undefined reference to operator - C++
Компилирует нормально, но когда хочу использовать оператор выдает ошибку:undefined reference to 'operator..(Fraction const&, Fraction...

operator char() или operator int() - C++
Здорова госпдо! Снова ничо не ясно как всегда. Разбираю программку из книги Страуструпа, там он описывает класс String в нем есть ...

Вызов operator[] через operator[] const - C++
Перелистывал Майерса, наткнулся на код, подскажите пожалуйста почему он советует закомментированный вариант кода, не проще сделать как...

Реализация operator + через operator += - C++
внутри следующей темы возник вопрос, ответ на который так и не был получен: ...

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число" - C++
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс, перегрузил операторы сложения и умножения, в конструкторе...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nick Alte
Эксперт С++
1638 / 1010 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
18.06.2014, 20:25 #2
Это потому что в параметр передают размер создаваемого объекта, а компилятор его и сам знает получше программиста в каждом случае вызова new.
0
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344
19.06.2014, 11:50  [ТС] #3
Как то очень абстрактно... Поподробней реализацию можно?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2014, 11:50
Привет! Вот еще темы с ответами:

size_t и npos - C++
Здраствуйте! Тут в одной теме нашёл код #include<string> #include<iostream> int main(){ std::string str="/.+(STL).$1/"; ...

size_t в операторе for - C++
Здравствуйте. Возникла проблема с типом size_t. Данный цикл почему то бесконечен for ( size_t j = 10; j >= 0; j-- ) { ; } Если...

Malloc для size_t - C++
структура вида struct BufferParam { double* pBuffer; COLORREF color; size_t size; };

Что такое Size_t - C++
size_t чет про него так мало инфы и так мутно написанно в инете я так попробывал даже создать переменную но не получилось... И еше мини...


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

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

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