Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
5 / 5 / 1
Регистрация: 09.09.2012
Сообщений: 227

Конструктор класса

04.02.2013, 04:04. Показов 893. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо для данного класса

C++
1
2
3
4
5
6
7
8
9
10
11
class sequence
{
public:
typedef double value_type;
typedef std::size_t size_type;
static const size_type CAPACITY = 30;
...
private:
value_type data[CAPACITY];
size_type used;
};
Ответить на вопрос:
The sequence's constructor sets used to zero, but does not place any values in the data array. Why?


A) Integer arrays are automatically initialized to zero.

B) The first activation of insert or attach initializes the entire array.

C) The array initialization was part of the project that was left to the student.

D) The programmer who uses the sequence is responsible for initializing the array.

E) When a sequence is first created, none of the array is being used.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2013, 04:04
Ответы с готовыми решениями:

Конструктор класса не видит конструктор по умолчанию другого класса
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть....

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this->iType_act = iType_activation_funk; switch...

Конструктор производного класса требует конструктор предка
Выдаёт вот такую вот ошибку: no matching function for call to 'Cube::Cube()' class Cube { protected: int magInt; bool...

14
 Аватар для Пёс
229 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
04.02.2013, 04:06
Если Вам не сложно, переведите на русский язык.
0
 Аватар для Venzo
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
04.02.2013, 04:18
Конструктор sequence изменяет used на 0, но не помещает значения в массив. Почему?
Целочисленные массивы автоматически инициализируются 0.
Первая вставка или (прикрепление?) инициализирует весь массив
Инициализация - часть проекта, оставленная для реализации студентом
Программист, использующий sequence, отвечает за инициализацию массива
Когда sequence создается (в первый раз?), ничего из массива не используется.

как-то так, но англ. я знаю не очень)
1
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
04.02.2013, 04:20
ответ A
why?
потому что в данном классе не определён конструктор по умолчанию, соответственно компилятор синтезирует его за неумелого программиста, а там правила гласят, что он должен обнулить все элементы базовых типов (int к ним относится)

могу ошибаться, т.к. не эксперт, сейчас ещё подумаю... но сходу бы ответил так
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
04.02.2013, 04:20
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
The sequence's constructor sets used to zero
не вижу конструктора конструктор по умолчанию не будет инициализировать used нулем.
За все отвечает программист! (это не ответ)
1
5 / 5 / 1
Регистрация: 09.09.2012
Сообщений: 227
04.02.2013, 04:21  [ТС]
ОК,

Для класса
C++
1
2
3
4
5
6
7
8
9
10
11
class sequence
{
public:
typedef double value_type;
typedef std::size_t size_type;
static const size_type CAPACITY = 30;
...
private:
value_type data[CAPACITY];
size_type used;
};
Конструктор sequence (sets used to zero) назначен использовать 0б но не помещает какого либо значения в массив. Почему?

A) Массив целых автоматически инициализируется в 0,
В) Первая активация функций insert или attach инициализируется в entire массив,
С) Инициализация массива была частью проекта, оставленная для реализации студентов,
D) Программер, кто использует класс sequence отвественный за инициализацию массива,
Е) Когда класс sequence впервые создан, ни один из массивов не используется.
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
04.02.2013, 04:34
точно B отпадает
в части C... какие в ж... студенты???
D - тоже отпадает, т.к. компилятор сам может неплохо синтезировать, здесь нет конструкторов копирования и десткруторов, так что сможет...

остались только A, C(??? что за студенты?), Е



всё же я проверил на более простом классе - конструктор обнулил int a[] , так что я настаиваю на варианте А )
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
04.02.2013, 04:36
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
Почему?
в принципе, если у нас класс последовательность, то при used равным нулю, не имеет смысла инициализировать данный массив. счет будет идти от 0 до used, поэтому инициализировать следующий элемент массива имеет смысл при вставке нового элемента, т.е. метод insert, но тут как бы говорят про весь массив в ответе B, что так же не имеет смысла. Могу предположить, что ответ E - не используемый массив нет смысла инициализировать.
1
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
04.02.2013, 04:40
Цитата Сообщение от Croessmah Посмотреть сообщение
B
в принципе, если у нас класс последовательность, то при used равным нулю, не имеет смысла инициализировать данный массив. счет будет идти от 0 до used, поэтому инициализировать следующий элемент массива имеет смысл при вставке нового элемента, т.е. метод insert


на сколько я вижу, у него массив полностью описан в value_type data[CAPACITY];
CAPACITY - заявлена как static, значит она не входит в этот класс, а лишь в его видимости, кроме того const, значит она неизменна и массив data инициализируется конструктором (который синтезиуруется) при первом обращении к классу, а не к его методам
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
04.02.2013, 04:45
Цитата Сообщение от abit Посмотреть сообщение
значит она неизменна и массив data идеализируется конструктором
Это приведет к потере производительности приложения =)
Конструктор по умолчанию является примитивным.
Цитата Сообщение от abit Посмотреть сообщение
на сколько я вижу, у него массив полностью описан в value_type data[CAPACITY];
И что? Массив объявлен, количество используемых элементов=used=0. Смысл массив обнулять?

Цитата Сообщение от abit Посмотреть сообщение
так что я настаиваю на варианте А )
Настаиваете? Только вот как минимум не состыкуется:

Цитата Сообщение от QWERY_2012 Посмотреть сообщение
Массив целых автоматически инициализируется в 0(хоть это и не так)
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
C++
1
2
typedef double value_type;
value_type data[CAPACITY];//Массив то double )))
1
 Аватар для Venzo
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
04.02.2013, 04:46
Цитата Сообщение от abit Посмотреть сообщение
всё же я проверил на более простом классе - конструктор обнулил int a[] , так что я настаиваю на варианте А )
при создании переменной в стеке, она не инициализируется 0. Конструктор по умолчанию не проинициализирует массив.
http://liveworkspace.org/code/2lMcyi$0
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
04.02.2013, 04:49
Цитата Сообщение от ZoRT Посмотреть сообщение
при создании переменной в стеке, она не инициализируется 0. Конструктор по умолчанию не проинициализирует массив.
http://liveworkspace.org/code/2lMcyi$0
да, я ошибся, извиняюсь, я дейсвтительно, свой конструктор указал, просто по привычке... если вернуться к исходному коду - да, согласен инициализации data[] не произодойдет синтезированным конструктором, так что мой вариант А тоже отпал, я не о том размышлял... на массивы это не работает
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
04.02.2013, 04:50
Цитата Сообщение от abit Посмотреть сообщение
всё же я проверил на более простом классе - конструктор обнулил int a[]
Да ладно? Эт на каком языке то писали?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
class sequence
{
public:
static const size_t CAPACITY = 10;
double data[CAPACITY];
};
 
int main(){
    sequence a;
    for(size_t i=0;i<sequence::CAPACITY;++i){
    std::cout<<a.data[i]<<std::endl;
    }
}
Название: Безымянный.png
Просмотров: 21

Размер: 4.4 Кб
1
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
04.02.2013, 04:52
Цитата Сообщение от Croessmah Посмотреть сообщение
Да ладно? Эт на каком языке то писали?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
class sequence
{
public:
static const size_t CAPACITY = 10;
double data[CAPACITY];
};
 
int main(){
    sequence a;
    for(size_t i=0;i<sequence::CAPACITY;++i){
    std::cout<<a.data[i]<<std::endl;
    }
}
Вложение 231670
я ещё раз приношу извинения (
я указал свой конструктор sequence() еще в самом начале эксперемента и забыл об этом...
простите, А - отпал

p.s. писал я на g++ и виндовой консоли лет 5 не видел )))
0
 Аватар для Venzo
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
04.02.2013, 04:53
A - нет
B - нет, инициализация происходит при создании объекта, а тут про вставку, да и при вставке устанавливается значение только одного(нескольких) элементов, а не всего массива сразу
C - ? возможный вариант, вам виднее
D - нет, класс должен минимизировать ошибки, а тут если программист забудет проинициализировать... глупый вариант в общем.
E - возможно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2013, 04:53
Помогаю со студенческими работами здесь

Вызвать конструктор производного класса без конструктора базового класса
Здравствуйте! У меня есть базовый класс треугольник и производный класс равносторонний треугольник.В конструкторе треугольника вводятся...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.

Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка
Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка. Всем огромное спасибо за помощь! |

Конструктор класса не дает инициализировать переменную класса
Привет. Вот такой вот класс. Когда пытаюсь в конструкторе присвоить name и hobby что либо, пишет ошибку: выражение должно быть допустимым...

В конструктор класса передать объект этого класса
Вопрос на засыпку :) Как в конструктор класса передать объект этого класса? Т.е. class A { public: A(const char* s){} ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru