Форум программистов, компьютерный форум 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
5230 / 2121 / 404
Регистрация: 15.11.2014
Сообщений: 4,812
Завершенные тесты: 1
31.07.2015, 16:09     Собеседования по С++ для джуна
Цитата Сообщение от ct0r Посмотреть сообщение
hoggy, я пишу с телефона, но если ты сам копирнешь код в любой онлайн-компилятор с С++03, то убедишься, что код нормально отрабатывает. И в С++11 будет нормально, если прописать деструктору noexcept(false). Все дело в разной умолчательной спецификации исключений.
http://rextester.com/LZLARW16805

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//Title of this code
//g++  4.9.2
 
#include <iostream>
 
 
struct sample
{
    ~sample() 
    {throw 1; }
};
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    try
    { 
        sample s; 
    }
    catch(... )
    {
        std::cout << "upppsss!\n";
    }
    
    std::cout << "success!\n";
    
    
    
}
про noexcept(false) не знал.
спасибо.

Добавлено через 53 минуты
Цитата Сообщение от Ilot Посмотреть сообщение
Повторять одно и то же не собираюсь. Я все сказал здесь и здесь
ваш собственный код наглядно демонстрирует, что ни объекты,
ни структуры не могут быть нулевого размера.
и вы не сможете получить sizeof объекта или структуры равным нулю.

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

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

так например, ответ на заданный вами вопрос:
это связанно с особенностями выравнивания данных.

но могут быть и другие парадоксы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//Title of this code
//g++  4.9.2
 
#include <iostream>
 
struct some
{
    some(int (&a)[256]): a(a){}
    
    int (&a)[256];
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    
    int a[256];
    
    some s(a);
    
    
    std::cout << "size of class: " << sizeof(some) <<'\n';
    std::cout << "size of member of class: " << sizeof(some::a) <<'\n';
    
    if( sizeof(some) < sizeof(some::a) )
        std::cout<< "о боже! размер отдельно взятого члена почему то оказался больше,"
               " чем размер всего класса\n";
}
в этом примере размер класса и его членов попадает под правило о ссылках.
-----------------------------------------------

но это все приколы "типо-образования".

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