SEO продвижение сайтов

ООП в С++ – классы и объекты

Для создания класса в С++ необходимо указать служебное слово class, после указывается имя класса, обычно с большой буквы, потом фигурные скобки. В фигурных скобках описывается тело класса.

Класс - это пользовательский тип данных.

Класс содержит переменные (свойства класса или поля класса) и функции (методы класса). Свойства и методы - являются членами класса.

Модификаторы доступа

  • public — доступ открыт всем, кто видит определение данного класса. Доступ разрешён к данным класса извне.
  • protected — доступ в классе и производным от данного класса. Производные классы (потомки) получают свободный доступ к таким свойствам или метода. Все другие классы такого доступа не имеют.
  • private — доступ открыт ТОЛЬКО самому классу (т.е. функциям-членам данного класса) и друзьям (friend) данного класса - как функциям, так и классам. Однако производные классы (потомки) НЕ получают доступа к этим данным совсем. И все другие классы такого доступа не имеют.

Если отсутствует модификатор, то все функции и переменные, по умолчанию являются закрытыми, но лучше определять модификатор всегда.

#include <iostream>//Подключаем cin и cout и др.
#include <string>//Строки
using namespace std;//Пространство имен

class Gena//КЛАСС
{
public://Доступ всем
string name="Маша";//Свойство

Gena(string name)//Конструктор
{
cout << name << " и " << this->name << endl;
}

void f()//Метод
{
cout << "Функция f()" << endl;
}

~Gena()//Деструктор
{
cout << "Пока!" << endl;
}

protected://Доступ ТОЛЬКО из класса
private://Доступ из класса и потомков
};

int main()
{
setlocale (LC_ALL, "rus");//Кириллица

Gena G1("Гена");//Создание объекта G1 класса + аргумент в конструктор
G1.f();//Метод класса через объект G1
Gena G2("Ната");//Создание объекта G2 класса + аргумент в конструктор
//class Gena G1("Гена");//Или так:
//class Gena G1("Гена"), G2("Ната");//А можно и оба сразу

//system("pause");//Команда задержки экрана - комментируем, т.к. не сраб. ДЕСТРУКТОР
return 0;
}

Конструктор и Деструктор

Конструктор класса - это метод (функция), который имеет ОДИНАКОВОЕ ИМЯ с классом и автоматически вызывается при создании объекта класса. Конструктор (как правило) должен быть public и в него можно передать аргументы, как в обычную функцию.

Конструктор используют для определения начальных данных класса.

Деструктор класса - это метод (функция), который имеет ОДИНАКОВОЕ ~ИМЯ с классом и впереди тильда(~) и автоматически вызывается при отработки объекта класса. Деструктор (как правило) должен быть public и в него НЕЛЬЗЯ передать аргументы, как в обычную функцию.

Деструктор используют для освобождения занятой памяти.

Создание объекта: ИмяКласса имяОбъекта; Ингода в начале указывается служебное слово class.

...
Gena G1("Гена");//Создание объекта G1 класса + аргумент в конструктор
//class Gena G1("Гена");//Создание объекта G1 класса + аргумент в конструктор
//class Gena G1("Гена"), G2("Ната");//А можно и оба сразу
...

Создать объект можно и сразу:

...
class NameClass
{
//тело класса
}, nameObjecta;//Создаём объект сразу!
...

Перегрузка конструктора

Перегрузка конструктора - очень похожа на перегрузку функции. Перегрузка конструктора в С++ – это подмена конструктора в зависимости от количества аргументов и их типов. Можно использовать два или больше конструктора с разными аргументами:

  • по количеству
  • по типу
  • но НЕ типу return

Указатель this

Указатель this указывает на адрес созданного объекта класса - является скрытым первым параметром любого метода-элемента класса. Но this можно указывать и явно: this->свойство или this->метод(). Используют в том числе если свойства класса и аргументы метода совпадают по именам.

...
Gena(string name)//Конструктор
{
cout << name << " и " << this->name << endl;//name - аргумент метода; this->name - свойство класса;
}
...

Web-технологии

Событие в JavaScript

Событие в JavaScript - это определённое действие, которые вызвано либо пользователем, либо браузером.

Например:

События мыши:

  • click – происходит, когда кликнули на элемент левой кнопкой мыши (на устройствах с сенсорными экранами оно происходит при касании).
  • contextmenu – происходит, когда кликнули на элемент правой кнопкой мыши.
  • mouseover / mouseout – когда мышь наводится на / покидает элемент.
  • mousedown / mouseup – когда нажали / отжали кнопку мыши на элементе.
  • mousemove – при движении мыши.

События на элементах управления:

  • submit – пользователь отправил форму
  • focus – пользователь фокусируется на элементе, например нажимает на <input type="text" />.
Подробнее...

Универсальный обход по массиву

Предлагаю вашему вниманию PHP-код - универсальный обходчик любого массива с любым представлением. Используем две функции: 1) функция с циклом (метод ArrFor() в классе) и 2) функция (как аргумент) с оформлением результатов обхода по массиву в цикле.

Подробнее...

JavaScript - основы (ES6)

ECMAScript 6 (или ES6) - это новая версия JavaScript 2015г, в которую добавлен новый функционал, которая на сегодня поддерживается всеми современными браузерами.

Переменные и комментарии

JavaScript - не строго типизированный язык. Переменные обозначаются так:

	let name='Геннадий'//Строка
	console.log(name)  //Геннадий - отображается в консоли

	var age=40      //Число(без кавычек) VAR (глобальная) - устарело, не использовать!
	console.log(age)//40 - отображается в консоли

	const prof="Программист"//Это константа
	console.log(prof)//Программист - отображается в консоли

	// - это однострочный комментарий

	/*
		тут 
		многострочные 
		комментарии
	*/

Подробнее...
Интересные статьи

Диалектические противоречия или чего хотят современные женщины

Диалектические противоречия или чего хотят современные женщины

Современная женщина, независимо от доходов и статуса, выбирает мужчину для отношений, который должен обладать определенными чертами характера. Именно наличие этих естественных черт характера у мужчины определяют его как достойного для создания пары.

Многие женщины, живущие в современном мире, традиционно имеют как минимум два взаимоисключающих убеждения в отношении взаимодействия с мужчинами для создания такого союза.

Подробнее...

Почему мужчинам опасно регистрировать брак в России

Почему мужчинам опасно регистрировать брак в России

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

Но при этом категорически настаиваю, что официально регистрировать брак в нашей стране для мужчин катастрофически опасно и вот почему...

Подробнее...

День Победы со слезами на глазах...

День Победы со слезами на глазах...

Дорогие друзья, вот и прошёл пожалуй самый светлый праздник для нашей страны, для нашего народа - ДЕНЬ ПОБЕДЫ - 9 мая.

Но, как именно прошёл праздник 75-летия ПОБЕДЫ в этом году, я хочу напомнить сегодня, спустя 4 дня от празднования исторической даты.

У меня такое ощущение, как будто никто не заметил, что ПОЛИЦАИ по всей стране в этот день задерживали, арестовывали и штрафовали именно за память о Победе, за возложение цветов к памятникам нашим павшим героям.

Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить