Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ITcrusader
Эксперт С++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
#1

Статический массив как член класса - C++

02.10.2015, 18:19. Просмотров 274. Ответов 9
Метки нет (Все метки)

Я туплю, что ли, почему это компилируется? о_О

C++
1
2
3
4
5
6
7
8
struct V
{
    int v[10];
};
 
V v1;
V v2(v1); // копирование
v2 = v1; // присваивание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2015, 18:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Статический массив как член класса (C++):

Как изменить статический приватный член класса? - C++
Как изменить статический приватный член класса если менять его нужно в main()!??

Статический константный член-класса - C++
Добрый день, что компилятору не нравится? VS 2013 // рекурсивное шаблоное метапрограммирование #include <iostream> using namespace...

Массив объектов класса как член другого класса - C++
Здравствуйте. У меня тут возникла проблемка #include "main.h" class player { public: player(); player(char*); ...

Массив как член класса - C++
Почему мне GCC выдаёт ошибку компиляции, что это zero-sized array ? struct Base { const char* d{"f", "f"}; }; ISO C++...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже --> - C++
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с одинаковым количеством такой буквы...

создать статический массив строк как статический массив указателей на строки, задание ниже --> - C++
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по первой согласной букве слова. Остальные слова...

9
nmcf
5777 / 5088 / 1739
Регистрация: 14.04.2014
Сообщений: 20,829
02.10.2015, 18:30 #2
Компилируется.
Какие ошибки?
0
ITcrusader
Эксперт С++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
02.10.2015, 18:31  [ТС] #3
так не должно, там же статический массив фиксированной длины! Как компилятор выполняет копирование и присваивание структуры?!
0
Enno
02.10.2015, 18:32
  #4

Не по теме:

Цитата Сообщение от ITcrusader Посмотреть сообщение
Как компилятор выполняет копирование и присваивание структуры?!
Эксперт C++
Хз, ты ведь эксперт. Вот и расскажи нам.

0
ITcrusader
Эксперт С++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
02.10.2015, 18:34  [ТС] #5
Цитата Сообщение от Enno Посмотреть сообщение
В коде нет ни одного слова static
Да при чем тут static?

разве может компилятор создать копирующий c-tor для этого класса и оператор присваивания (если да, то что они должны делать???)
0
nmcf
5777 / 5088 / 1739
Регистрация: 14.04.2014
Сообщений: 20,829
02.10.2015, 18:35 #6
Ну и что, что массив? Скопируется всё как есть.
0
Enno
267 / 170 / 38
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
02.10.2015, 18:36 #7
Цитата Сообщение от ITcrusader Посмотреть сообщение
разве может компилятор создать копирующий c-tor для этого класса и оператор присваивания (если да, то что они должны делать???)
Побайтовое копирование. БУМ! Задача решена.
0
ITcrusader
Эксперт С++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
02.10.2015, 18:44  [ТС] #8
Забавно, я никогда так не делал и не думал, что это будет компилироваться. Ведь поле класса - константный указатель на область памяти.
0
castaway
Эксперт С++
4920 / 3028 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 10
Завершенные тесты: 1
02.10.2015, 18:54 #9
Это называется "поверхностным копированием". Просто копируются все поля, находящиеся в классовом типе. Так что всё нормально.

Цитата Сообщение от ITcrusader Посмотреть сообщение
Ведь поле класса - константный указатель на область памяти.
Это обычный массив.
0
mporro
256 / 101 / 14
Регистрация: 04.07.2014
Сообщений: 571
02.10.2015, 19:52 #10
-- Вы знаете, что это?
-- Нет.
-- А Вы?
-- Нет.
-- Славно, что здесь эксперты...
=) (j/k)
0
02.10.2015, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2015, 19:52
Привет! Вот еще темы с ответами:

Большой двумерный массив как член класса - C++
Размеры массива 2048 на 512. Создал, заполняю в конструкторе, но результата нету. Такое вообще реально, без динамического выделения памяти?

Функция возвращает двумерный статический массив своего класса - C++
Есть класс whirlpool: class whirlpool { public: int *buffer; int len; whirlpool(int length)

Статический член указатель на класс - C++
Доброго времени суток. Что требовалось: создать статический указатель на класс CPerson, чтобы сохранить в него нужный объект. Как пытался...

Как объявить статический метод класса? - C++
выдает ошибку на 11 16 19 строку((((((( #include <iostream> using namespace std; class Sop { private: short int kol; ...


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

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

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