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

Собеседования по С++ для джуна - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Необязательные временные объекты http://www.cyberforum.ru/cpp-beginners/thread1506633.html
Помогите с задачкой: Класс Car содержит модель автомобиля. Функция Find определяет, присутствует ли указанная модель в списке автомобилей. class Car { string model_; public: Car(string mod) :model_(mod){} bool operator==(const Car& other) {
C++ Уведомления между потоками Здравствуйте! Набросал код для экспериментов: #include "stdafx.h" int блок_1(HWND *hWnd, MyStruct* strukt_1); int сервис_1(HWND *hWnd, MyStruct* strukt_1); void блок(HWND *hWnd, MyStruct* strukt_1)//запускаем основной поток { int q = 0; http://www.cyberforum.ru/cpp-beginners/thread1506588.html
C++ Когда в ОС используется COM ?
Для каких действий ОС использует COM технологию ? Всегда ли она используется при исполнении exe файлов?
C++ Где найти все глаголы для ShellExecute ?
Здравствуйте. Где и как посмотреть список допустимых глаголов системы? Знаю о существовании страницы в msdn , но функция которую я нашел в интернете и использую использует глагол "runas", которого нет на странице.
C++ Write some short C or C++ code to generate a segmentation fault http://www.cyberforum.ru/cpp-beginners/thread1506555.html
Write some short C or C++ code to generate a segmentation fault
C++ Write some short C or C++ code to generate a stack overflow Write some short C or C++ code to generate a stack overflow подробнее

Показать сообщение отдельно
hoggy
5997 / 2437 / 436
Регистрация: 15.11.2014
Сообщений: 5,399
Завершенные тесты: 1
03.08.2015, 15:34     Собеседования по С++ для джуна
Цитата Сообщение от Ilot Посмотреть сообщение
Передача в функцию происходит по ссылке, т.е. мы передаем существующий объект без создания временного.
вы ошибаетесь.
вы передаете объект типа B.
а принимаете объект типа A&

срабатывает правило о приведении типов.

приведение типов - всегда создание временного объекта
(то, что компилятор потом толкнет стандартную оптимизацию - не принципиально).

Цитата Сообщение от Ilot Посмотреть сообщение
Вопрос: если как вы говорите объект не может иметь нулевой размер то откуда в структуре взялся лишний байт?
нет никаких лишних байтов.
ещё раз: не путайте "структуру" с "подструктурой".


в статьях аля "низкоуровневый взгляд на наследование/полиморфизм/бла бла бла"

есть очень хорошее замечание:
считайте, что декларация наследования классов - лишь указание, как выполнить наследование.
но сам итоговый класс есть вещь сама по себе, и никакого отношения к своим предкам не имеет.

то есть:

C++
1
2
3
4
struct a{ int a; };
struct b{ int b; };
 
struct c : a, b { int c; };
следует воспринимсать, как:
C++
1
struct c : { int a,b, c; };
поймите уже наконец:
итоговый наследник наследует другие классы

компилятор для такого наследника копипастит по определенным правилам.
понимаете?

"часть класса" - это и не объект, и не структура.
это это лишь частичка рецепта, по которому нужно сгенерировать итоговый класс.

и если в ходе такого построения, компилятор посчитает,
что согласно 100500 разных правил, здесь делать байт не нужно - он его не зделает.

к структурам, из которых "как бы состоит класс" - это никакого отношения не имеет.

Добавлено через 1 минуту
Цитата Сообщение от ct0r Посмотреть сообщение
О чем спор?
это не совсем спор.

речь о том, что объекты якобы могут быть нулевого размера.

мой цемес в том, что "подобъекты" не имеют никакого отношения к "объектам".
 
Текущее время: 10:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru