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

Обращение к свойству класса в динамической памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать объяснительную записку к коду http://www.cyberforum.ru/cpp-beginners/thread1103566.html
Написал код для курсовой а вот надо ещо обьяснительную записку но не знаю как её писать кто может помоч буду оч благодарен ! Вот код #include <iostream> //стандартная библиотека #include <time.h> //случайные числа #include <stdio.h> //для printf #include <windows.h> // для HANDLE, курсора, цвета #include <conio.h> //для kbhit #include <math.h> #include <io.h> #include <iostream>
C++ Создание объектного файла с использованием программного кода Интересует вопрос, как создать объектный файл, некоторой, программы на C++, из другой программы? То есть, имеется файл temp.cpp и я хочу получить temp.o. А это я делаю с помощью исполняемого файла toObj, написанным и откомпилированным (toObj.cpp). Ну и вот мне нужно реализовать код для toObj.cpp. К примеру, если будет около 50 файлов на С++, то будет удобно получить объектный файл с помощью... http://www.cyberforum.ru/cpp-beginners/thread1103560.html
C++ Как определить символ конца строки
Всем доброго времени суток! Работаю в VS2012 Такая задача - работаю со строками. Считываю файл (построчно функцией getline). И мне дозарезу нужен символ конца строки. Я понимаю, что можно воспользоваться функцией .length(), получить длину и так определить конец строки, но как, прогоняя строку посимвольно в цикле, осуществить проверку на символ конца строки? Т.е.: for (int i=0;...
Вывести сообщение "Можно", если из букв введенной строки X можно составить введенную строку Y C++
Не могу понять самой сути задания. Вывести сообщение "Можно", если из букв введенной строки X можно составить введенную строку Y,при условии что каждую букву строки X можно использовать один раз; и сообщение "Нельзя" в противном случае.
C++ Ошибка в слиянии. Первый элемент массива не сортируется http://www.cyberforum.ru/cpp-beginners/thread1103536.html
Добрый день, возникла ошибка в алгоритме слияния. Проблема в том, что когда вывожу результат - первый элемент массива не отсортирован. Буду признателен, если скажите почему? в программе также реализована сортировка пузырьком, но она просто так. работает // ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include...
C++ Работа с шаблонами и ошибка "Undefined reference" только приступил к изучению шаблонов и сразу куча вопросов и проблем прошу объяснить мне на пальцах почему не работает matrix.h #ifndef MATRIX_H #define MATRIX_H #include <iostream> #include <cstdarg> template<class T>class matrix подробнее

Показать сообщение отдельно
Gelor
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 4
23.02.2014, 18:23     Обращение к свойству класса в динамической памяти
Здравствуйте!

Возникла проблема с обращением к свойству класса, расположенному в динамической памяти. Пойду по порядку. Создаю вот такой класс:
C++
1
2
3
4
5
6
7
8
9
10
class Number
{
private:
    double *num;
public:
    Number() {num = new double;}
    ~Number() {}
    void Set(double val) {*num=val;}
    double Get() {return *num;}
};
Если создать копию его объекта с помощью конструктора копирования по умолчанию, который использует побитовое копирование, его указатель num будет ссылаться на тот же участок памяти, что не есть хорошо, поэтому нужно указать конструктор копирования явно. Я это делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
class Number
{
private:
    double *num;
public:
    Number() {num = new double;}
    Number(Number& Obj) {num=new double(Obj.*num);}
    ~Number() {}
    void Set(double val) {*num=val;}
    double Get() {return *num;}
};
В итоге получаю ошибку в строке с конструктором копирования:
'((Number*)this)->Number::num' cannot be used as a member pointer, since it is of type 'double*'
При этом если вместо Obj.*num указать просто число, то всё компилируется и работает как надо. Поэтому мне кажется, что я как-то не правильно записываю обращение к значению указателя num. Как это сделать корректно?
Заранее огромное спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru