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

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

Войти
Регистрация
Восстановить пароль
 
Karchok
2 / 2 / 1
Регистрация: 27.09.2011
Сообщений: 48
#1

Operator sizeof - C++

22.06.2013, 20:27. Просмотров 647. Ответов 13
Метки нет (Все метки)

Кто-нибудь знает как реализован этот оператор? И когда он выполняется: на уровне компиляции или во время исполнения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2013, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Operator sizeof (C++):

Sizeof(.) или constexpr size_t tmp = sizeof(.) - C++
sizeof(...) или constexpr size_t tmp = sizeof(...) Как лучше с точки зрения производительности? правильности?

Fwrite (buffer , sizeof(char), sizeof(buffer), pFile) - C++
как записать часть массива чаров? допустим у нас arr; мне надо записать с позиции массива 500 до 600, 100 байтов как записать эту...

Class & operator's |Error: undefined reference to operator - C++
Компилирует нормально, но когда хочу использовать оператор выдает ошибку:undefined reference to 'operator..(Fraction const&, Fraction...

Вызов operator[] через operator[] const - C++
Перелистывал Майерса, наткнулся на код, подскажите пожалуйста почему он советует закомментированный вариант кода, не проще сделать как...

operator char() или operator int() - C++
Здорова госпдо! Снова ничо не ясно как всегда. Разбираю программку из книги Страуструпа, там он описывает класс String в нем есть ...

Реализация operator + через operator += - C++
внутри следующей темы возник вопрос, ответ на который так и не был получен: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
22.06.2013, 20:28 #2
во время компиляции
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
22.06.2013, 20:31 #3
Выполняется во время компиляции.
оператор sizeof
Karchok
2 / 2 / 1
Регистрация: 27.09.2011
Сообщений: 48
22.06.2013, 20:32  [ТС] #4
А если у меня массив переменной длины?
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
22.06.2013, 20:33 #5
@Karchok, узнается лишь архитектурно-зависимыми способами
Croessmah
22.06.2013, 20:33
  #6

Не по теме:

Цитата Сообщение от Karchok Посмотреть сообщение
А если у меня массив переменной длины?
Ну ка пример такого массива

MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
22.06.2013, 20:34 #7

Не по теме:

@Croessmah, мне кажется он криво выразился о динамических массивах


Хотя на деле подходит и VLA.
Karchok
2 / 2 / 1
Регистрация: 27.09.2011
Сообщений: 48
22.06.2013, 20:35  [ТС] #8
Например std:: vector какой-нибудь
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
22.06.2013, 20:38 #9
а чем vector.size() не устраивает?
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,225
Записей в блоге: 3
Завершенные тесты: 1
22.06.2013, 20:38 #10
Цитата Сообщение от Karchok Посмотреть сообщение
std:: vector какой-нибудь
Это лишь шаблонный класс.
sizeof вернет размер объекта класса
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
22.06.2013, 20:40 #11
таки вектор содержит указатель на динамический массив и размер объекта - вектора изменяться не будет( наверно коряво выразился) скока он щас, 12 байт вроде?
Karchok
2 / 2 / 1
Регистрация: 27.09.2011
Сообщений: 48
22.06.2013, 20:42  [ТС] #12
Он вернёт количество элементов в контейнере, а не количество байт. Меня всё устраивает - просто интересно как это реализуется
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
22.06.2013, 20:44 #13
@Karchok, внутри вектора то? Элементарно - переменная-свойство класса.
Karchok
2 / 2 / 1
Регистрация: 27.09.2011
Сообщений: 48
22.06.2013, 20:45  [ТС] #14
Нет, вообще. внутри вектора неинтересно))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2013, 20:45
Привет! Вот еще темы с ответами:

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число" - C++
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс, перегрузил операторы сложения и умножения, в конструкторе...

sizeof( char * ) & sizeof(char) - C++
Здравствуйте, не могу понять почему sizeof(char *) = 4 а sizeof(char) = 1. Ну с последним ясно , а вот с первым непойму... Может кто-то...

Operator +, operator += — какой через какой реализовывать? - C++
Для class Fraction { // ... public: Fraction operator + ( const Fraction& right ) const; Fraction& operator += ( const...

sizeof - C++
Подскажите пожалуйста что делаю не так? в базовом классе gameElement, имеется матрица указателей на базовый класс: gameElement* arr; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.06.2013, 20:45
Ответ Создать тему
Опции темы

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