Аватар для el Gato Estelar
9 / 9 / 1
Регистрация: 26.05.2010
Сообщений: 36

Пара вопросов по С++

16.07.2010, 09:03. Показов 3896. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
возникло несколько вопросов, с которыми что то не могу никак разобраться

1. Как происходит выравнивание при создании структуры?

C++
1
2
struct { double a; int b; char c;};
struct { char a; int b; double c; };
ведь должны возвращать разный размер? В первом всё достраивается до double, а во втором сначала до int, потом до double? Но тем не менее, проверив в двух компиляторах(в VS2005 и bcc5.5) я получил результат и там и там 16(double=8), который никак не могу понять

2. Про добавление константности
пусть есть класс:

C++
1
2
3
4
5
6
7
8
9
10
11
class A {
public:
 A() {}
 A(const A&) { printf("Copy constructor called\n"); }
 void doSmth() { printf("Non-const method called"); }
 void doSmth() const { printf("Const method called"); }
};
...
A a;
a.doSmth();
(static_cast<const A>(a)).doSmth();
т.е. хочу вызвать константный и неконстантный методы. Но с константным и начинаются проблемы.
C++
1
static_cast<const A>(a)
почему то игнорируется, результат этой конструкции -- класс А(проверял через typeid). Не могу понять почему? Если поставить приведение к ссылке - всё будет работать, оно и понятно - мы просто сообщаем компилятору, что в этой конструкции адресуется объект типа "const A", но почему не срабатывает простое приведение? Я считал, что в этом случае, будет создаваться временный объект нужного типа, но судя по тому, что копирующий конструктор не вызывается, этого не происходит. Почему?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2010, 09:03
Ответы с готовыми решениями:

Пара вопросов по C++ 11
1. чем отличаются std::forward_list и std::initializer_list? 2. не получается применять constexpr в msvs 2013 pro constexpr auto n = 0;...

Пара глупых вопросов
Помогите please,please,please. Не могу понять в чем туплю, надо всего-то записать двумерный массив в файл ну и я пишу (Уже есть массив...

Пара вопросов по итераторам
1. Почему в этом коде элементы удаляются через одного? for (std::vector &lt;int&gt;::iterator j = vector.begin(); j &lt; vector.end(); j++) ...

30
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
18.07.2010, 10:30
Студворк — интернет-сервис помощи студентам
А сам перевод где находится?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
18.07.2010, 11:21
Mr.X, человек новый стандарт переводит? Интересно как у него это получится, я, например, не предаствляю как названия многих нововведений можно грамотно перевести на русский.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
18.07.2010, 12:37
Цитата Сообщение от Evg Посмотреть сообщение
А сам перевод где находится?
Как я понял, он еще не опубликован, но и после публикации в том числе и электронные копии автор планирует сделать платными.

Добавлено через 25 минут
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Mr.X, человек новый стандарт переводит? Интересно как у него это получится, я, например, не предаствляю как названия многих нововведений можно грамотно перевести на русский.
Извините за философское отступление, но мне кажется, что такое скептическое отношение к национальным языку и мышлению еще раз подтверждают мне мою мысль, что мы, русские, еще не являемся нацией. Самостоятельная и зрелая нация формулирует для себя понятия сама, и осмысливает все сама. Заимствования понятий и теорий у нее происходят путем переосмысления их национальной элитой в национальном культурном контексте. Евреи вон не поленились новый язык для себя выдумать (я имею в виду оживление мертвого языка для разговорных целей), а мы свой богатейший многотысячелетний язык, от которого по последним исследованиям произошли все индоевропейские, пытаемся заменить примитивной английской тарабарщиной.
Недавно по радио кто-то рассказывал, как ему лично говорил один из руководителей американской программистской фирмы: если проект срочный, то мы отдаем его американцам, если большой, то индийцам, а если его реализация кажется невозможной, то русским, и они всегда справляются.
Так что у нас есть все для того, чтобы стать нацией, кроме желания ею стать.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
18.07.2010, 13:40
Mr.X, я может не очень ясно выразился, но имел ввиду, что многие наименования нововведений стандарта не имеют очевидных аналогов в русском языке. И весьма маловероятно, что некто в одиночку сможет граммотно их подобрать. Над переводом должны трудится профессиональные лингвисты и программисты, а не непонятно кто. Только никто этим заниматься не будет - кому стандарт интересен, то его и в оргинале без проблем прочтет.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
18.07.2010, 14:29
CyBOSSeR, так я то же самое и имел в виду. Нация – это народ, который имеет приверженную к нему национальную элиту (властную, научную, религиозную и художническую), которая смыслом своего существования считает обслуживание своей нации в сфере своей компетенции и продвижение национального проекта во всех аспектах.
Как только такая элита у нас появится, мы и станем нацией. А пока эти функции у нас выполняют энтузиасты-одиночки. Мне кажется, за это их стоит только благодарить.
По первому впечатлению стандарт там переводит человек довольно компетентный, так что пока не стоит падать духом.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
18.07.2010, 14:55
Mr.X, те, кто из русских хорошо знают английский, утверждают, что Шекспира имеет смысл читать только в оригинале, перевод полной картины не доносит. Аналогично Пушкина надо читать только в оригинале. В каждом языке есть куча особенностей, которые нормально на другой язык не переводятся. Английский язык в силу своих лингвистических особенностей, судя по всему, лучше подходит для технических описаний, особенно когда надо придумывать новые термины. А размышления про нации, элиты и прочие высокие материи - это не более чем демагогия
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
18.07.2010, 18:11
Цитата Сообщение от Evg Посмотреть сообщение
...не более чем демагогия
Где-то я читал такую рекомендацию: если у тебя в споре нет аргументов, то обвиняй оппонента в демагогии.
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
18.07.2010, 18:13
Mr.X, можешь в каждом вопросе по стандарту отвечать, что ждешь русского перевода, благо никогда не дождешься
0
19.07.2010, 12:35

Не по теме:

Цитата Сообщение от Mr.X Посмотреть сообщение
Где-то я читал такую рекомендацию: если у тебя в споре нет аргументов, то обвиняй оппонента в демагогии.
А я почему-то аргументы увидел. Я один такой? :D

0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
19.07.2010, 13:44
прекращаем оффтоп.

Mr.X, хотите обсудить проблемы русской нации - создайте отдельную тему
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.09.2010, 11:34
Цитата Сообщение от el Gato Estelar Посмотреть сообщение
В первом всё достраивается до double, а во втором сначала до int, потом до double?
Выравнивание происходит без достраивания. И выравнивается на ближайшее кратноё определённому шагу (может и перменому). В твом случае 4. Чётнократное тоже ведь кратное, что позволяет выравнивать дабл до инта.

Добавлено через 3 минуты
Цитата Сообщение от el Gato Estelar Посмотреть сообщение
будет A, а не const A
А чем они различаются кроме не возможности модификации? И куда ты присваиваешь результат приведения? Уверен что при этом не происходит обратное преобразование?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.09.2010, 11:34

пара вопросов по GUI
1) итак, посмотрел Inter PRO одного банка. При наборе в IE адреса он каким-то образом переадресует запущенному Inter PRO, он в свою очередь...

Пара вопросов по функторам stl
Доброго времени суток! У меня возникло пара вопросов по функторам. Может кто чего подскажет? Вопрос 1. В нижеследующем коде в...

вставление строк и пара вопросов
вычислить и вывести на экран в виде таблицы значение функции F на интервале от Xнач до Xконч с шагом Dx задана система: ...

Пара вопросов о рандомайзере и RadioButton
1) srand((unsigned)time(NULL)); int rand_ = rand()%10; rand_ будет равен от 0 до 9 включительно или от 0 до 10 включительно? ...

Пара вопросов про массивы
у меня есть пара вопросов,хотя один можно сказать относится к функциям..но тема у нас в курсе-массивы. Так вот: 1.void main() { const...


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

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

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru