Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти числа, которые не делятся ни на какие простые числа, кроме 2 и 3 Помогите пожалуйста составить программу! Даны N положительных целых чисел. Вывести только те, которые не делятся ни на какие простые числа, кроме 2 и 3. https://www.cyberforum.ru/ cpp-beginners/ thread2158294.html C++ Написать программу для нахождения радиуса, диаметра и центров в ориентированном взвешенном графе
Здравствуйте! Помогите с кодом, нужно написать программу для нахождения радиуса, диаметра и центров в ориентированном взвешенном графе. Веса ребер требуется задать самостоятельно.
C++ Что делать? пишет [Error] expected unqualified-id before '{' token https://www.cyberforum.ru/ cpp-beginners/ thread2158289.html
#include <iostream> #include <math.h> using namespace std; int count; int main(0); {
C++ Оптимизация кода Нужно очень сильно оптимизировать код, даже пусть с использованием потоков, если это возможно! Суть: формируется последовательность (комбинация , размещение с повторением), а потом следующая... https://www.cyberforum.ru/ cpp-beginners/ thread2158288.html
C++ Рассчитать стоимость числа в соответствии с заданным правилом
Пользователь вводит число (может быть с запятой, или целочисельное) с клавиатуры. Программа рассчитывает его стоимость: каждое число стоит количеству ребер, отображающихся на циферблате(1 - 2 ребра,...
C++ Дана структура данных “Город”, которая генерируется программой в случайном порядке Дана структура данных “Город”, которая генерируется программой в случайном порядке (должна содержать пустые местности). Задания: определить точку в городе(номер дома), где наилучшая видимость (со... https://www.cyberforum.ru/ cpp-beginners/ thread2158264.html
C++ Ошибки при переносе функций в другой файл И снова здравствуйте. На этот раз другая проблема. Переношу функцию из файла с функцией main (там функция прекрасно работает) в другой файл (functions.cpp). В главный файл и functions.cpp подключил... https://www.cyberforum.ru/ cpp-beginners/ thread2158262.html C++ Два значения в одной переменной
Подскажите как записать в одну переменную два значения и потом эту одну переменную назад разбить на эти два значения. int key = ? // думаю нужен ключ void f2(int z) { int x = ? int y =...
C++ Нахождение суммы по заданной формуле помогите,пожалуйста, решить в С++ https://www.cyberforum.ru/ cpp-beginners/ thread2158250.html C++ Сортировка слов в строке по алфавиту https://www.cyberforum.ru/ cpp-beginners/ thread2158243.html
Помогите отсортировать слова в строке по алфавиту (через strcmp, не используя "string.h"). Пол дня просидел, ничего не получилось. #include <iostream> #include <windows.h> using namespace std; ...
Определить количество слов, длина которых равна третьему слову текста C++
Определить количество слов, длина которых равна третьему слову текста, а затем их вывести по одному в строке. Помогите пожалуйста.
C++ Односвязный список, удалить все отрицательные элементы https://www.cyberforum.ru/ cpp-beginners/ thread2158233.html
Односвязный список Реализация динамических структур Написать программу, которая удаляет из списка L все отрицательные элементы Ребят, помогите пожалуйста переделать код так, чтобы он был...
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 12
0

Доступ к полю умного указателя - C++ - Ответ 11950809

16.12.2017, 01:13. Показов 1465. Ответов 3
Метки (Все метки)

Привет.
Реализовал умный указатель. Появилась проблема:
Если обращаться через перегруженный ->(селектор) к объекту класса SmartPointer, то без проблем доступны методы поля Object. Но стоит мне передать указатель на этот объект, допустим, в перегруженный оператор ввода (пример 3), то методы поля Object становятся закрытыми и получить доступ к ним невозможно.
Вопрос:
Как получить доступ к методам поля Object, если я передаю указатель на объект класса SmartPointer?

Умный указатель.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class SmartPointer
{
    private:
    Machine* Object;
public:
    SmartPointer();
    SmartPointer(const Machine& machine);
    Machine* operator->();
    Machine operator*();
    bool isEmpty();
    void nullObj();
    void operator=(const Machine&);
    void Info(int);
    ~SmartPointer();
};
Реализация перегрузок указателя.
C++
1
2
3
4
5
6
7
8
9
Machine* SmartPointer::operator->()
{
    return Object;
}
 
Machine SmartPointer::operator*()
{
    return *Object;
}
Пример использования указателя на объект класса SmartPointer.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ostream& operator<<(ostream& stream, SmartPointer* object) {
    
    char t;
    if (typeid(stream) == typeid(ofstream))
        t = ' ';
    else
        t = '|';
    stream << fixed; //ниже приведены методы поля Object в SmartPointer
    stream << setw(15) << object->getName() << t; 
    stream << setw(10) << object->getInventoryNumber() << t;
    stream << setw(10) << setprecision(2) << object->getPowerComsumption() << t;
    stream << setw(6) << object->getCount() << t;
    return stream;
}


Вернуться к обсуждению:
Доступ к полю умного указателя C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2017, 01:13
Готовые ответы и решения:

Реализация умного указателя
Добрый вечер. Сегодня с умным указателем поиграться. Написал обгортку : #pragma once template...

Использование умного указателя std::weak_ptr
Есть вот такой код иерархии классов. Нужно в последнем классе list, вместо динамического массива...

Проверить правильность реализации умного указателя
? template&lt;class T&gt; class Auto_Ptr { public: Auto_Ptr(); explicit Auto_Ptr(T* alloc);...

Утечка при комбинации сырого и умного указателя
После выхода из блока shared_ptr вызывает деструкторы объектов, но они почему-то остаются в...

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 01:13

Не выводится сообшения от деструктора для умного указателя
#ifndef Shared_ptr_H #define Shared_ptr_H template&lt;class T&gt; class shared_ptr { private: ...

Передача умного указателя в функцию принимающую указатель на указатель
Итак имеется функция со следующим параметром: HRESULT __stdcall Function(SomeClass **param); ...

Ошибка умного указателя для формы
Приветствую. В хедере главной форме объявляю умный указатель на вторую форму: private: // User...

Написать шаблон умного указателя для массива
Добрый день уважаемые! Не могу решить 2 задачи! 1. У вас есть многосвязный список‚ заданный...

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