Читайте также: |
|
Строка – это последовательность символов. Если в выражении встречается
одиночный символ, он должен быть заключен в одинарные кавычки. При
использовании в выражениях строка заключается в двойные кавычки.
Признаком конца строки является нулевой символ ‘\0’.
Например, описание строки из 25 символов должно выглядеть так:
char s[26];
Здесь элемент s[25] предназначен для хранения символа конца строки.
char s[7]="Привет";
Можно описать и массив строк
char m[3][25]={"Пример ", "использования", " строк"}
Определен массив из 3 строк по 25 байт в каждой.
получение характеристик строк
s.length, size, max_size, capacity Vпамяти, empty
s.assign(s1, [[с какого,] сколько]) s= часть s1, почти подстрока
s.append(s1, [[с какого,] сколько]) s+=s1
s1=s.substr(с какого, [сколько])
s.insert(№симв, что,[с какого],[сколько]) вставка
s.replace(№симв, вместо скольки, что,[с какого брать],[сколько брать]) замена
s.erase(с какого,[ сколько]) удаление части
s.clear() очистка
s.find(что, [с какого]) возвращает позицию самого правого вхождения
s.rfind(что, [с какого]) -//- левого
s.compare([с какого, сколько из s], c чем,[с какого, сколько из 2го] сравнение -1< 0== 1>
инкапсуляция
- это принцип ООП, объединяющий в одном классе данные и методы, манипулирующие этими данными и защищающие данные класса от внешнего воздействия.
Класс запрещает прямой доступ к своим переменным состояния, поэтому не удастся реализовать недопустимое состояние is_on=0, status=1.
Методы set_print(), stop_print(), on_off(), предоставляющие доступ к свойствам объекта, реализованы так, что также исключают это состояние объекта.
В этом и заключается смысл понятия инкапсуляции.
полиморфизм
это принцип ООП, позволяющий включать в состав класса несколько функций с одинаковыми именами, но выполняющих различные действия.
Такие функции должны иметь различные списки параметров, они должны отличаться или количеством параметров в списках, или типами соответствующих параметров.
наследование
это принцип ООП, посредством которого на базе существующих классов создаются новые классы, получающие по наследству от базовых классов свойства и методы.
ООП определения классы
Логическая единица – объект
Объект в программе представляет собой абстракцию реального объекта, т. е. в программе объект наделяется теми чертами и характеристиками реального времени, которые существенны для решаемой задачи
Объект в программе имеет имя, ограниченный набор свойств, набор допустимых состояний (т. е. набор конкретных значений свойств), набор методов (операций), определяющих модель поведения объекта (действия объекта).
Свойства – переменные;
Действия – подпрограммы (функции);
Подпрограммы, содержащие описания действий объекта, называются методами;
Набор конкретных значений переменных, характеризующих объект, определяет состояние объекта.
Объект в ООП – это совокупность переменных состояния и связанных с ними методов (операций).
Эти методы, с одной стороны, определяют, как объект взаимодействует с внешним миром.
С другой стороны, методы осуществляют переход объекта из одного состояния в другое, причем метод проверяет, возможен ли такой переход в данной ситуации.
Класс (class) – это тип данных, включающий в себя группу данных различных типов (свойства) и методы работы с этими данными;
Объект (object) – это экземпляр класса, обладающий набором свойств с заданными значениями;
Свойство (property) – характеристика объекта, представленная в виде переменной, являющейся членом класса;
Метод (method) – это подпрограмма, входящая в состав класса и управляющая данными объекта;
Событие (event) – какое-либо происшествие в программе, системе, например, была нажата кнопка мыши;
Сообщение (message) – адресованная конкретному объекту информация о происшедшем событии.
Объявление класса:
class <имя класса>
{
public:
<объявление переменных, констант, функций>
private:
<объявление переменных, констант, функций>
protected:
<объявление переменных, констант, функций>
};
class Printer
{
private:
char model[15]; //модель принтера
int year; //год выпуска
int status; //состояние принтера
public:
void init_printer(char* _model, int _year);
void set_print();
void stop_print();
void show();
};
методы
void Printer::init_printer(char* _model,int _year)
{strcpy(model,_model); //инициализация свойства model
year=_year; //инициализация свойства year
status=0; //начальное состояние – готов к печати}
void Printer:: set_print()
{ if (!status) status=1;}
void Printer:: stop_print()
{ status = 0;}
void Printer:: show()
{cout<<"Model:"<<model<<"year:"<<year<<"status:"<<status<<endl;}
Создание объекта, инициализация свойств объекта, изменение состояния объекта и вывод его текущего состояния на экран
int main(void)
{
Printer printer; //создание объекта
//инициализация свойств объекта
printer.init_printer("HP5P", 1999);
printer.show(); //вызов метода объекта
printer.set_print();
printer.show();
printer.set_print();
printer.show();
printer.stop_print();
printer.show();
return 0;
}
Для создания объекта используется специальный метод, называемый конструктором.
Конструктор включается в состав класса в разделе public:
class Printer
{
public:
Printer(); //Конструктор
…
};
Printer:: Printer()
{
strcpy(model,"Canon_BJC250");
year=2000;
status=0;
}
Конструктор выделяет память под объект, достаточную для размещения всего объекта, и инициализирует переменные состояния объекта
class Printer
{…
public:
//Конструктор с параметрами
Printer(char* _model, int _year);
…};
Printer:: Printer(char* _model, int _year)
{
strcpy(model, _model);
year=_year;
status=0;
}
int main(void)
{
Printer printer1("HP5P",1999);
printer1.show();
return 0;
}
Для разрушения объекта используется метод, называемый деструктором. Для деструктора, также как и конструктора, не указывается тип возвращаемого значения, имя совпадает с именем класса, только перед именем помещается знак ~ (тильда).
class Printer
{…
public:
Printer(char* _model, int _year);
~Printer(); //Деструктор
…};
Деструктор может отсутствовать в составе класса, тогда для разрушения объекта создается деструктор по умолчанию.
Деструктор обязательно должен быть включен в класс, если какие-либо свойства класса помещаются в динамической памяти.
class Printer
{
char* model; //указатель на строку, которая будет
//содержать название модели и разместится
//в динамической памяти
int year; //год выпуска
int status; //состояние принтера
public:
Printer(char* _model, int _year);
~Printer();
void set_print();
void stop_print();
void show();
}
Printer:: ~Printer()
{
//Освобождение динамической памяти
delete[] model;
//Присваивание указателю значения пустого
//указателя, обязательно в Visual C++ 6.0
model = NULL;
}
Явный вызов деструктора не требуется, так как его вызов будет выполнен автоматически в точке программы, где объект должен быть разрушен в соответствии с его временем жизни.
Вступительная лекция.
«Безопасность жизнедеятельности как категория»
1. Основные понятия и определение в безопасности жизнедеятельности.
2. Классификация источников опасности, опасных и вредных факторов.
3. Сжатая характеристика окружающей среды, что окружает человека
Дата добавления: 2014-11-24; просмотров: 275 | Поможем написать вашу работу | Нарушение авторских прав |