Итак, чо я узнал нового, ну или вспомнил старое. Надо записать, а то всё забуду.
читать дальше
Кастинг
писать лучше не (char)c, a static_castc
ещё есть const_cast, dynamic_cast & reinterpret_cast - ну мы до них ещё доберёмся.
Конструкторы и деструкторы не возвращают значений. Даже void. Хз, чо такое void, кстати.
Стандартный "конструктор по умолчанию" не принимает параметров. И ничего не делает.
Можно написать свой стандартный конструктор, который будет чо-то делать, и можно написать свой конструктор с параметрами.
Деструктор в принципе не принимает параметров.
Параметры по умолчанию
Можно задавать значения по умолчанию, но справа налево: function( a, b=2, c=3), но нельзя function(a, b=2, c) - компилятор не оценит.
const
Если функция не должна изменять значений, её можно объявить как function() const;
Можно объявить функцию как inline function(); и тогда она будет встроенной.
Функции определённые в объявлении класса, автоматом становятся встроенными:
class A {function Get_a(){return a;}
private: int a;};
указатели
Оказывается, при освобождении памяти (delete ptr
с указателем ничего не происходит, и его можно использовать повторно. Я не знал. Я думал ваще всё нахуй удаляецца с указателем и прочим.
Если сделать delete ptr два раза, программа зависнет, поэтому после освобождения памяти надо обнулить указатель. При применении delete к нулевому указателю ничего не происходит.
Позже ещё допишу