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

Объясните зачем нужны конструкторы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Цикл: Имитация командной строки http://www.cyberforum.ru/cpp-beginners/thread791693.html
Имитация командной строки. Для чего использован в данном коде цикл For?#include "StdAfx.h" #include <windows.h> #include <iostream> #include <iomanip> #include <TCHAR.h> #include <time.h> #include <conio.h> int _tmain( int argc, TCHAR *argv ) {
C++ Не могу запустить программку компилятор выдаёт ошибку error LNK2019: ссылка на неразрешенный внешний символ Прошу прощения за глупые вопросы но я новичок в програмировании .Вот моя программка и копия ошибки которую выдаёт компилятор если кто сможет подскажите что ни так #include "stdafx.h" #include<iostream> #include<iomanip> #include<stdlib.h> #include<time.h> void shuffle( int ); http://www.cyberforum.ru/cpp-beginners/thread791680.html
2Д-игра C++
Здравствуйте, хочу создать 2D игру. Раньше такие игры писал на C++ Builder, но больше не хочу (не серьёзно это ка-кто). Изучаю OpenGL, но там слишком много всего. Мне нужно только выводить изображение, анимацию - это практически все. Что посоветуете? Что использовать?
как работает cin.good() C++
Здравствуйте. Мне необходимо организовать "защиту от дурака". Пользователь должен ввести целое число. Моя программа должна считывать вводимые данные до тех пор, пока пользователь не введет целое число. Мой код: int var1; for(;;) if (cin>>var1,cin.good()) { cout<<"var1= "<<var1; break; } else
C++ Массив: Образовать новую последовательность чисел так, чтобы она тоже была неубывающей http://www.cyberforum.ru/cpp-beginners/thread791643.html
Помогиет реализовать программу на С++ или дайте советы по ее построению Даны две последовательности a1 ≤ a2 ≤ ... ≤ an и b1 ≤ b2 ≤ ... ≤ bm . Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей. П р и м е ч а н и е . Дополнительный массив не использовать.
C++ не открывает большие проекты IDE codeblocks так в целом работает нормально, но при открытии больших проектов намертво виснет, приходится завершать через диспетчер задач. есть ли решение этой проблемы? или есть ли аналогичная среда, чтобы не кушала много памяти, и была функция автозавершения кода? подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6230 / 2959 / 287
Регистрация: 04.12.2011
Сообщений: 7,899
Записей в блоге: 3
21.02.2013, 17:18     Объясните зачем нужны конструкторы
Цитата Сообщение от ~B~ Посмотреть сообщение
Зачем нужны конструкторы? Читаю в книгах, смотрю видеоуроки и все равно не понятно
~B~, ещё можно бы добавить, что конструкторы могут выделять память, а деструктор может её освобождать.
Чаще всего, говорят, что конструкторы не выделяют, а инициализируют память, а выделяется она оператором new, скажем. Действительно, для приведенного примера это так и есть, при создании объекта такого класса в динамической памяти. Но часто бывает, что класс сам содержит динамические объекты, а тогда выделяет память именно он. Значения (указатели на выделенную память) возвращаются указателям - членам, так как эти указатели доступны конструктору, как методу и никакой тип возврата конструктору для этого не нужен.
То есть при наличии у класса объектов требующих выделения динамической памяти, конструктор должен её выделить, а деструктор освободить. И это не зависит от того, сам объект класса создается статически или динамически.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A {
public:
int sz;
int *mass_of_sz;
A(int _sz, int initMass);
~A();
}; 
A::A(int _sz, int initMass){
sz=_sz;
mass_of_sz=new int[sz];//выделили память
for( int i = 0; i < sz; ++i ) mass_of_sz[i]=initMass;//инициализировали чем нужно
}
A::~A(){
 delete [] mass_of_sz;//освободили память
}
 
Текущее время: 21:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru