Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Транспонировать матрицу F(10,8) Транспонировать матрицу F(10,8) и вывести на печать элементы главной диагонали и диагонали, расположенной под главной. Результаты разместить в двух строках. https://www.cyberforum.ru/ cpp-beginners/ thread400016.html C++ cin.getline работает через раз
вот этот код работает прекрасно #include <iostream> using namespace std; void Open_Directory() { char *directory= new char; cin.getline(directory, sizeof(directory)); //cin.getline(directory, sizeof(directory)); cout<<directory<<"\n"; }
C++ Шаблоны функций и классов https://www.cyberforum.ru/ cpp-beginners/ thread400013.html
Нужносоздать шаблон функции возведения заданного числа в заданную степень (аналог функции pow() ). Шаблон класа Класс: матрица. Свойства: размеры, элементы матрицы. Методы: конструктор с параметрами, вычисление суммы элементов на главной диагонали.
C++ Дружественные функции и классы 1. Класс Пациент (имя, диагноз, рецепт, номер карты); 2. Класс Зав. отделением (имя) Описание предметной области – зав. отделением может менять номер карты пациента . Пожалуйсто помогите!!! Добавлено через 1 минуту Каждый класс должен реализовывать метод show, который отображает на экране все свойства данного объекта. Вызов дружественной функции должен сопровождаться выводом сообщения о... https://www.cyberforum.ru/ cpp-beginners/ thread400010.html
ПЕРЕГРУЗКА ФУНКЦИЙ. ПЕРЕГРУЗКА ОПЕРАТОРОВ. C++
1. Функция нахождения самого длинного слова (два, три и четыре слова). 2. Описать класс одномерный массив (вектор) целых чисел. Перегрузить следующую операцию: > присвоить всем элементам вектора заданное значение. Помогите пожалуйсто очнь надо! Только попроще!!!
C++ Абстрактные базовые классы Помогите решить пожалуйста!) Задание 1 . Создать базовый класс - фигура, и производные класс - круг, прямоугольник, трапеция. Определить виртуальные функции площадь, периметр и вывод на печать. Задание 2 . Создать абстрактный базовый класс с виртуальной функцией - сумма прогрессии. Создать производные классы: арифметическая прогрессия и геометрическая прогрессия. Каждый класс имеет два поля... https://www.cyberforum.ru/ cpp-beginners/ thread400002.html
C++ Ввод имени файла с клавиатуры https://www.cyberforum.ru/ cpp-beginners/ thread399999.html
Всем привет! Хочу сделать так: int main() { char finame; printf("Enter the name of file: "); scanf_s("%s", &finame); FILE *f = fopen(finame, 'r'); if(!f) printf ("Error!");
C++ Поставить в начало последовательности нули, а затем единицы
1 Последовательность a1; a2; ...; an состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.
C++ Классы https://www.cyberforum.ru/ cpp-beginners/ thread399957.html
Условие задачи Построить систему классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров.Программа должна содержать меню, позволяющее осуществить проверку всех методов классов. В интернете нашла похожую решенную задачку, но в ней много лишнего по сравнению с моим заданием, поэтому...
C++ Разжуйте определенную часть написания программы. В частности enum. Дело в том, что нужно написать программу, в которой вводиться с клавиатуры Название месяца на английском, а выводится у кого из друзей и когда выводится день рождения (текст вообщем). Сложность состоит в том, что программу нужно написать с помощью 16-ти дополнительных ф-ций, из которых 12-это просто вывод текста для каждого месяца, 1-на ф-ция (должна быть void) для вывода сообщения для ввода... https://www.cyberforum.ru/ cpp-beginners/ thread399956.html
создание string в namespece std C++
В руки попала программа. Необходимо вместо фиксированных аргументов "to be or not to be", "beer", "bread", "milk" брать какой-нибудь string. А создать его не могу. Вроде и библиотека подключена... Помогите пожалуйста. // recurstring.cpp: определяет точку входа для консольного приложения. // /* написать консольное приложение, которое будет работать с последовательностями слов. Вывести...
C++ Построение таблицы значений функции y=f(x) для x на отрезке [a;b] с шагом h https://www.cyberforum.ru/ cpp-beginners/ thread399945.html
Помогите, пожалуйста, исправить следующую ситуацию: при a=-2, b=1 и h=0.3 на экран не выводится значение функции в крайней точке отрезка f(1) :gsad: #include <iostream> #include <cmath> using namespace std; double f(double x); int main() { setlocale(LC_ALL,"rus_rus.1251"); double a;
145 / 142 / 11
Регистрация: 11.09.2011
Сообщений: 411
06.12.2011, 11:19 0

Какая разница в инициализации? - C++ - Ответ 2252541

06.12.2011, 11:19. Показов 2252. Ответов 17
Метки (Все метки)

Ответ

1й случай это типа инициализация конструктора в памяти заведутся переменные сразу со занчениями (true, false) после чего пойдет выполнение конструктора.

2й тут заведутся переменные со случайными значениями (т.е. в переменных будут просто данные которые хранились в этой области памяти до того как переменные заняли эту область), после пойдет выполнение конструктора в котором им присвоятся значения (true, false)

в книгах советуют первый способ т.к. он быстрее. а еще таким способом нужно вызывать конструкторы базового класса с аргументами.

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
class A
{
public: 
    A() {};
    A(int NewA); //как в унаследованных классах вызывать именно этот конструктор?
 
    int VarA;
};
 
class B: public A //наследуем класс А
{
public:
    B() {};
    B(int NewA, int NewB);
 
    int VarB;
};
 
A::A(int NewA):VarA(NewA)
{
}
 
B::B(int NewA, int NewB):A(NewA),VarB(NewB)  //вызов конструктора класса А с аргументом
{
 
}


C++
1
2
3
B::B(int NewA, int NewB):VarA(NewA),VarB(NewB) //попытка инициализоровать переменную базового класса без конструктора. переменная еще не появилась - не был вызван констурктор базового класса, а мы ее уже пытаемся инициализировать, поэтому вылезет ошибка
{
}

C++
1
2
3
4
5
B::B(int NewA, int NewB)  //вызовется конструктор базового класса A() без агрументов
{
    VarA = NewA; //И только после этого можно пристваить переменной значение
    VarB = NewB;
}
C++
1
2
3
4
B::B(int NewA, int NewB):A(NewA),VarB(NewB)  //вызов конструктора класса А с аргументом
{
                                                  //самый быстрый вариант
}


Вернуться к обсуждению:
Какая разница в инициализации? C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2011, 11:19
Готовые ответы и решения:

В чём разница в конструкрукторе со списком инициализации и без оного
объясните пожалуйста разницу между конструктором по умолчанию и конструктором по умолчанию. первая...

Разница в определении конструкторов со списком инициализации и без него
Начинаю изучать конструкторы , и в моей книге его объявление выглядит следующим образом class...

Различные варианты инициализации указателя - в чём точная разница между ними?
Немного непонятен один момент. Есть некий класс Statement (конструктор используется по умолчанию)....

Инициализация в теле конструктора или в списке инициализации, есть ли разница в сгенерированном коде?
Инициализация в теле конструктора или в списке инициализации - большая ли разница в сгенерированном...

17
06.12.2011, 11:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2011, 11:19
Помогаю со студенческими работами здесь

Какая разница?
Я уже довольно долго изучаю С++ и столкнулся с проблемой: чем отличается cout от printf, так как я...

Какая разница?!
Вот две сортировки массивов, если не трудно обьясните пожалуйста разницу и есть ли указатели тут:...

Какая Разница между сортировками?
Какая разница между сортировками, если в итоге все виды сортируют одинаково. Т е. Результат...

Какая разница между двумя алгоритмами?
Вообщем, как только я свою задачу не упрощал, но в указанные ограничения она так и не входит....

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru