- •Void main(void)
- •Void main(void)
- •Void main()
- •Void main()
- •Viod main()
- •Условные выражения
- •Void main()
- •If(Выраженне1) Выражение2;
- •If(Выражение1) Выраженпе2; else ВыражениеЗ;
- •Void main()
- •Циклические выражения
- •Void nain()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Массивы
- •Void main()
- •Void main()
- •Void main()
- •Viod main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Адреса и указатели
- •Void main()
- •Viod main()
- •Функции
- •Void main(void)
- •Void main(void)
- •Int I; double X,step();
- •Void decart(double r, double f)
- •Void main()
- •Void decart(double r,double f,double *X,double*y)
- •Void main()
- •Void rnain()
- •Void main()
- •Void main()
- •Void main()
- •Int length;
- •Объектно-ориентированное программирование и приложения с графическим интерфейсом
- •Void main(void)
- •Int MyFunc(int, int);
- •Void NewFunc(void);
- •Void main()
- •Void FuncOut();
- •Void prob::FuncOut()
- •Void main()
- •Void main()
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Int pascal
- •Int nCmdShow)
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Void __fastcall tForm1::okClick(tObject *Sender)
- •Int I,step;
- •Введение в численные методы
Void main(void)
{
BASE bas1,bas2; int i;
FILE *f1;
bas1.num[0]=0;
strcpy(bas1.name[0],"Ivanov");
bas1.age[0]=44;
strcpy(bas1.sex[0],"m");
f1=fopen("C:\ivb\ppis\bas1f.txt","wb");
fwrite(&bas1,sizeof(bas1),1,f1);
fclose(f1);
f1=fopen("C:\ivb\ppis\bas1f.txt","rb");
fread(&bas2,sizeof(bas1),1,f1);
puts(bas1.name[0]);
fclose(f1);
getch();
}
В приведенном листинге объявлен тип структуры BASE, и в главной функции созданы два экземпляра структуры bas1 и bas2. В программе инициализируются поля для первого (точнее – нулевого) сотрудника с номером 0, фамилией Ivanov, возраст 44 года, пол мужской. Остальные девять «строк» в структуре остаются не инициализированными. По некоторому пути в файловой системе открывается для записи двоичный файл с именем bas1f.txt. Расширение txt не должно вводить читателя в заблуждение. Мода “wb” функции открытия файла fopen определяет то, что файл именно двоичный и открыт для записи. Нетрудно видеть, что в указанный дисковый файл целиком копируется структура bas1. Далее файл закрывается и вновь открывается уже для чтения. Содержимое файла копируется в экземпляр структуры bas2, и из этой структуры извлекается и выводится на экран фамилия пользователя. При правильной работе программы на экран должно быть напечатано, естественно, слово Ivanov. Наверное, нет нужды подробно пояснять, что здесь представлена «заготовка» работы со структурой в форме некоторой базы данных – ее создание, изменение и сохранение на диске в виде файла.
Классы
Понятие класса видимо является ключевым и основополагающим понятием объектно-ориентированного программирования (ООП). С другой стороны это понятие является логическим продолжением и расширением понятия структуры, с которым оперируют и не объектно-ориентированные системы. Также как и структура, класс с полным основанием можно рассматривать как новый тип данных. Переменные такого типа как раз и являются теми самыми объектами, которые и дали название ООП.
Переход от структуры к классу, как расширение структуры, в первую очередь связано с возможностью включения в класс кроме переменных-членов еще и функций-членов. В современной литературе по ООП принято называть функции-члены методами класса, а переменные-члены – свойствами класса. Вторым важнейшим отличием от структуры является то, члены класса (как переменные, так и функции) могут быть либо открытыми, либо закрытыми. По умолчанию все члены класса являются закрытыми. Это означает то, что оперировать с закрытыми данными могут только собственные методы класса. Если же необходимо получить доступ к свойствам извне (например, из главной функции программы), то свойства должны быть объявлены открытыми с помощью ключевого слова public: Разумеется, для обеспечения возможности вызова функций-членов извне необходимо эти методы также объявить открытыми.
В простейшем виде синтаксис объявления класса может выглядеть следующим образом:
class имя-класса
{
// Объявления закрытых членов класса
public:
// Объявления открытых членов класса
}[Объекты];
Формально имя класса может быть опущено, аналогично тегу структуры. На практике же имя задается практически всегда. Также, аналогично структурам, после закрывающей фигурной скобки может быть сформирован список объектов класса – по именам или указателям. При этом сразу при объявлении класса создаются и соответствующие объекты и их дополнительного описания в других функциях программы или в виде глобальных переменных уже не требуется.
Для задания переменных-членов в классе дело обстоит точно так же, как и в структурах. Необходимо только четко представлять себе какие из свойств в вашей программе следует сделать открытыми, а какие – закрытыми. Что же касается декларирования методов класса, то здесь следует объявлять только прототипы функций, то есть указывать тип функции (тип возвращаемого значения), имя функции и в круглых скобках типы аргументов. Например, для метода, вычисляющего некое целочисленное значение по двум целочисленным аргументам, объявление прототипа может выглядеть так: