Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Unicorn_666
0 / 0 / 1
Регистрация: 18.03.2017
Сообщений: 34
Завершенные тесты: 1
#1

Как поместить в объявленную память переменную класса? - C++

26.05.2017, 23:08. Просмотров 151. Ответов 8
Метки нет (Все метки)


http://www.cyberforum.ru/cpp-beginners/thread2109766.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2017, 23:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как поместить в объявленную память переменную класса? (C++):

Как поместить число 4294967296 в переменную?
делаю ip калькулятор, если используется маска 0.0.0.0 то кол-во хостов в сети...

Как поместить в шаблон статическую переменную?
мучаюсь вторые стуки, не где не могу найти решения проблемы, смысл в следующим,...

Как получить private переменную класса, функцей членом другого класса
Игра змейка: Есть класс поле в котором содержится размеры поля: class...

Как, создавая указатели, поместить их в уже выделенную динамическую память?
С++ как создавая указатели поместит их в уже выделенную динамическую память ...

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся...

8
nd2
2828 / 2398 / 1052
Регистрация: 29.01.2016
Сообщений: 8,022
26.05.2017, 23:15 #2
Цитата Сообщение от Unicorn_666 Посмотреть сообщение
Как я могу теперь засунуть в массив какие-нибудь переменные класса
Вот так из засунуть:
Цитата Сообщение от Unicorn_666 Посмотреть сообщение
C++
1
arr[i] = object;
Или нужно без присваивания?
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7002 / 3295 / 448
Регистрация: 04.12.2011
Сообщений: 9,115
Записей в блоге: 5
26.05.2017, 23:21 #3
Цитата Сообщение от Unicorn_666 Посмотреть сообщение
Как я могу теперь засунуть в массив какие-нибудь переменные класса, не создавая этих переменных?
Пользуясь вашим языком можно посоветовать воспользоваться плейсментньюмом как пихалкой.
0
Captain Maxee
Велосипедист...
281 / 203 / 73
Регистрация: 15.12.2015
Сообщений: 751
Завершенные тесты: 1
26.05.2017, 23:21 #4
Цитата Сообщение от nd2 Посмотреть сообщение
Вот так из засунуть
Ну он так сует экземпляр, а ему поля засовывать нужно
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7002 / 3295 / 448
Регистрация: 04.12.2011
Сообщений: 9,115
Записей в блоге: 5
26.05.2017, 23:25 #5
Цитата Сообщение от Captain Maxee Посмотреть сообщение
поля засовывать
Хуже. Задача запхать переменные не создавая их. То есть скоструивать сварганить в ячейках.
0
Captain Maxee
Велосипедист...
281 / 203 / 73
Регистрация: 15.12.2015
Сообщений: 751
Завершенные тесты: 1
26.05.2017, 23:26 #6
Хотя... Там вообще не понятно что происходит.
Цитата Сообщение от Unicorn_666 Посмотреть сообщение
arr[i]
Что за arr...

Добавлено через 59 секунд

Не по теме:

IGPIGP,

0
nd2
2828 / 2398 / 1052
Регистрация: 29.01.2016
Сообщений: 8,022
26.05.2017, 23:30 #7
Placement (размещающий) оператот new:
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
31
32
33
34
35
36
37
38
39
40
class Base 
{
     int a;
public:
    
    Base(int x) : a(x)
    { cout << "Base()\n"; }
    
     ~Base() 
    { cout << "~Base()\n"; }
}; 
 
 
 
int main()
{
    void* buffer = operator new [](sizeof(Base) * 10);
    Base* pb = static_cast<Base*>(buffer);
    
    for (int i = 0; i < 10; ++i)
    {
        new(pb + i) Base(i);
    }
    
    for (int i = 0; i < 10; ++i)
    {
        cout << (pb + i) ->a << endl;
    }
    
    // необходим ручной вызов деструктора
    for (int i = 9; i >= 0; --i) 
    {
        pb[i].~Base();
    }
 
    operator delete [] (buffer);
 
    system("pause");
    return 0;
}
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7002 / 3295 / 448
Регистрация: 04.12.2011
Сообщений: 9,115
Записей в блоге: 5
26.05.2017, 23:31 #8
Цитата Сообщение от Captain Maxee Посмотреть сообщение
IGPIGP,

А если серьёзно, то создавая
Цитата Сообщение от Unicorn_666 Посмотреть сообщение
class_name *array = new class_name [size];
уже создаются экземпляры - конструктором по умолчанию, у них нет имени, но это объекты. В этом смысле совет nd2, вполне нормален.
0
Unicorn_666
0 / 0 / 1
Регистрация: 18.03.2017
Сообщений: 34
Завершенные тесты: 1
27.05.2017, 12:45  [ТС] #9
Всем спасибо!
0
27.05.2017, 12:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2017, 12:45
Привет! Вот еще темы с решениями:

Как выделить память для класса
Привет, я пишу библиотеку управления памятью. На данный момент я выделяю память...

Деструктор класса. Как правильно очистить память?
Добрый день! Написал прогу бинарного дерева поиска, все работает, но нужен...

Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?
Как объявить массив объектов одного класса в другом классе, а затем поместить в...

Как проинициализировать структурную переменную в конструкторе класса?
К примеру у меня есть переменная p типа POINT. Такую запись он считает...


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

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

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