Что обозначает такое создание обьекта: SmartPointer sp? Пишу код по видео уроку, класс умных указателей. Не понимаю, что за определение обьекта такое: SmartPointer sp(new Foo(2,2)); для чего здесь <> скобки?
И еще, как указатель может быть void: std::ptrdiff_t operator -(void *p) это что, ссылка на ничего?
Поясните, пожалуйста значение <> скобок.
Вот код:#include
template
class SmartPointer {
Type* pointer;
public:
SmartPointer(Type* p) : pointer(p) {};
operator Type*() { return pointer; };
Type *operator->() {
if (!pointer) {
pointer = new Type();
std::cerr p) {
return pointer - p;
}
std::ptrdiff_t operator -(void *p) {
return pointer - p;
}
};
class Foo {
int a, b;
public:
Foo() : a(0), b(0) {};
Foo(int a, int b) : a(a), b(b) {};
int sum() { return a + b; }
};
int main(int argc, char **argv) {
SmartPointer sp(new Foo(2,2));
std::cout sum() >void");
}

21 Авг 2019 в 07:04
164 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 038 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир