Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
 Аватар для el Gato Estelar
9 / 9 / 1
Регистрация: 26.05.2010
Сообщений: 36

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

16.07.2010, 09:03. Показов 3838. Ответов 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru