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

Почему конструктор не работает? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вектор действительных чисел http://www.cyberforum.ru/cpp-beginners/thread696854.html
Ввести вектор действительных чисел. Все элементы больше величины среднего арифметического элементов вектора заменить на ноль, а максимальный элемент заменить на значение среднего арифметического....
C++ Напишите программу по обработке массива, как объекта созданного Вами класса «Массив» помогите составить программу на С++ Напишите программу по обработке массива, как объекта созданного Вами класса «Массив», согласно варианту и выполните на тестовых данных. В отчете представьте... http://www.cyberforum.ru/cpp-beginners/thread696853.html
C++ Отсортировать массив(структуры)
Задано сведения о кубиках: размер кубика (длина ребра), цвет (красный, желтый, зеленый или синий), материал (деревянный, металлический, картонный). Выдать на печать:  количество кубиков каждого...
C++ Конветпция n символа в s
Вопрос вот собственно в чем зачем в этой сточке s = n % 10 + '0' мы прибавляем '0' /* itoa: преобразование n в строку s */ void itoa(int n, char s) { int i, sign; if ((sign = n) < 0) ...
C++ Создать базу данных, в которой нужно вывести фрукты только красного цвета http://www.cyberforum.ru/cpp-beginners/thread696835.html
Ребята напишите пожалуйста программы: 1) Вывести символы с ключевыми символами а, ю. Если присутствует только символ не выводить. 2) Создать базу данных, в которой нужно вывести фрукты только...
C++ Работа с массивом указателей Моя задача сделать прогу, которая предлагает пользователю ввести количество проданных книг за каждый месяц, а потом она это подсчитует. Главную задачу я смог реализовать, все считается нормально, но... подробнее

Показать сообщение отдельно
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
13.11.2012, 23:13
Цитата Сообщение от Nweo Посмотреть сообщение
По букварю (Дейтелы) условие такое. Авторы аргументируют тем, что в set-функции класса, устанавливающем значение элементов данных в области доступа private, можно реализовать полезные дополнения, в виде проверки корректности вводимых данных. При этом в случае необходимости надо будет модифицировать только эту set-функцию, не трогая остальные клиенты элементов данных.
Теперь конструтор перестает быть exception-safe. А это может повлечь за собой всякие веселые вещи, например, не будет вызываться деструтор для объекта. В C++11 можно заюзать делегирование конструкторов.
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
32
33
34
35
36
37
38
39
40
#include <iostream>
 
struct Foo
{
    Foo()
    {
        std::cout << "Foo()" << std::endl;
    }
 
    template <class... Args>
    Foo(Args&&...): Foo()
    {
        std::cout << "Foo(...)" << std::endl;
        throw_an_exception();
    }
 
    void throw_an_exception()
    {
        throw 42;
    }
 
    ~Foo()
    {
        std::cout << "~Foo()" << std::endl;
    }
};
 
int main()
{
    try
    {
        Foo();
        Foo(3.14);
    }
    catch(...)
    {
        std::cout << "Exception" << std::endl;
    }
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
То есть классы еще не изучили нормально, а используют string? ИМХО, бред!
Для использования контейнера std::string не обязательно знать классы, но надо уметь работать с указателями и выделением памяти, поскольку первое - лишь способ реализации.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru