Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
bearwoolfs
15 / 15 / 5
Регистрация: 10.01.2011
Сообщений: 275
1

Переменный член

11.10.2011, 11:53. Просмотров 878. Ответов 2
Метки нет (Все метки)

Здраствуйте. В классе обявлен переменный член itsA в привытном методе доступа. Можно ли его с помощью такой функции new*itsA=new int обявленной в конструкторе этого класса сделать указателем на динамическую область памяти??? И что будет при его перезагрузке будет ли он по прежнему динамичным ???
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 11:53
Ответы с готовыми решениями:

Сохранить переменный член в области динамической памяти ????
Есть класс class Analiz { public: Analiz(); ~Analiz(); ...

Одномерные массивы. Найти максимальный член в массиве, начиная со второго член
Как найти максимальный член в массиве, начиная со второго члена?

В последовательности а1,...,a30 поменять местами наибольший член и член с номером m.
Даны натуральное число m, действительные числа а1,..,a30 (числа попарно...

Поменять местами наибольший член последовательности и член с номером m
Помогите в 4 пункте меню сделать вывод на консоль, в файл и защиту если сразу...

Если объект константный, означает ли это, что ни один его член-элемент или член-метод не изменится?
Назрел такой вопрос: Если объект константный это означает, что ни один его...

2
-=ЮрА=-
Заблокирован
Автор FAQ
11.10.2011, 12:59 2
Лучший ответ Сообщение было отмечено bearwoolfs как решение

Решение

Ниже реализация класса CDynamic, осуществляющего переинициализацию своего privat-указателя
(реализовывал в меру того как понял задание)
CDynamic.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
 
class CDynamic
{
private:
    void * lpPtr;
public:
    CDynamic(){lpPtr = NULL;}//Конструктор по умолчанию
    ~CDynamic()//Деструктор
    {
        if(lpPtr)
            delete [] lpPtr;
    }
    //Переставляет lpPtr на блок памяти lpMem
    //При этом если lpPtr указывал на какой то блок памяти
    //данный блок уничтожается delete [] lpPtr
    void SetMemPtr(void * lpMem = NULL)
    {
        if(lpPtr)
            delete [] lpPtr;
        lpPtr = lpMem;
    }
    void * GetPtr(){return lpPtr;}//Возвращает адрес lpPtr
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "CDynamic.h"
 
int main()
{
    long i,N;
    CDynamic ptr;
    std::cout<<"Enter Elements in INT ARRAY\n";
    std::cout<<"N = ";std::cin>>N;
 
    int * arrINT = new int[N];
    for(i = 0; i < N; i++)
        std::cout<<"arrINT["<<i<<"] = "<<(arrINT[i] = i)<<"\n";
    ptr.SetMemPtr((void *)arrINT);
    std::cout<<"POINTER TO arrINT : "<<arrINT<<"\n";
    std::cout<<"POINTER TO ptr    : "<<ptr.GetPtr()<<"\n";
 
    std::cout<<"Enter Elements in DOUBLE ARRAY\n";
    std::cout<<"N = ";std::cin>>N;
    double * arrDOUBLE = new double[N];
    for(i = 0; i < N; i++)
        std::cout<<"arrDOUBLE[i] = "<<(arrDOUBLE[i] = i)<<"\n";
 
    ptr.SetMemPtr((void *)arrDOUBLE);
    std::cout<<"arrINT[0] : "<<arrINT[0]<<"\n";
    std::cout<<"POINTER TO arrINT    : "<<arrINT<<"\n";
    std::cout<<"POINTER TO arrDOUBLE : "<<arrDOUBLE<<"\n";
    std::cout<<"POINTER TO ptr       : "<<ptr.GetPtr()<<"\n";
    system("pause");
    return 0;
}

Лог Release
--------------------Configuration: Dynamic - Win32 Release--------------------
Compiling...
main.cpp
Linking...

Dynamic.exe - 0 error(s), 0 warning(s)
0
Миниатюры
Переменный член  
rangerx
11.10.2011, 14:31     Переменный член
  #3

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(lpPtr)
delete [] lpPtr;
delete[] \ delete применяемый к void* это UB.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2011, 14:31
Привет! Вот еще темы с ответами:

Член-ссылка на другой член класса
Есть класс Dot с двумя членами - x и y. Требуется еще один класс, который...

Переменный оператор сравнения
Добрый день. Интересует такой вопрос: возможно ли переменной присвоить...

Как задать переменный размер массива
Как задать переменный размер массива?


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

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

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