Void main()
{
printf(“Hello World!”);
}
Int printf(count char*,...);
В С++ была разработана своя библиотека ввода-вывода, которая называется iostream. Все необходимое расположено в заголовочном файле iostream.h. Стандартный ввод и вывод связаны при помощи двух потоков: cin и cout. Для осуществления ввода-вывода перегружаются две операции: >> - для ввода информации и << - для вывода. Данные операции в заголовочном файле определены для всех встроенных типов данных и их использование жестко контролируется компилятором.
#include <iostream.h>
main()
{
double a,b,c;
cout <<”Введите А и В”;
cin >>a>>b;
cout <<”Значение суммы”<<a<<”+”<<b<<”=”<<a+b;
}
В этом примере одни и те же операции используются для ввода и вывода величин типа double и символьных строк. Компилятор сам определяет ,какую функцию вызвать для реализации ввода и вывода, используя информацию о типах в объявляемых данных.
Цепочечная запись возможна, так как результат отдельной операции является ссылкой на объект cout или ссылкой на объект cin.
C++ как С c классами
char name[30];
int age;
double salary;
struct Form
{
char name[30];
int age;
double salary;
};
Form Ivanov, ivt[22];
ivt[1].age;
int GetAge(Form *this)
{
}
double AvSalary(Form *this)
{
}
Класс С++ - тип структуры, расширенный таким образом, позволяющий включать в описание не только элементы, содержащие значения, но и функции, оперирующие этими значениями. В С++ вводится специальная терминология: данные получили название член-данные, а функции – член-функции (методы). Для реализации введем точки с плоскости в декартовой системе координат.
class Point2D
{
private:
double a,b;
public:
void read();
double mod() count
{
return sqrt(x*x+y*y);
}
void print() const;
Имя типа Point2D будет представлять новый тип данных. Это имя может быть использовано для объявления переменных этого нового типа. Эти переменные называются объектами.
Void main()
{
Point2D p1,p2;
Тело класса, заключенное в фигурные скобки и ограниченное точками с запятой содержит … Члены класса можно разделить на две группы:
Член данные – данные, характеризующие описываемую абстракцию
Член функции – действия, функции или операции, которые могут быть выполнены над переменными этого типа.
В нашем примере для описания класса используются слова public и private. Кроме этих слов еще может быть слово protected. Эти слова управляют доступом к членам класса. Если член класса объявлен после public. то они считаются общими, т.е. открытыми для доступа из любой точки программы. Ключевые слова private и protected говорят о том, что следующие за ними члены доступны только для членов функций этого класса. Подобные ограничение доступа носит название сокрытие информации. Ключевое слово protected ограничивает использование член данных потомками базового класса при наследовании. В нашем случае эти слова эквивалентны. Хорошим стилем программирования считается объявление функций в части public, а данных в private,
При этом обеспечивается защита член данных класса от случайных изменений и несанкционированного доступа. При необходимости корректировки член данных, изменения надо проводить только в функциях, которые являются только членами этого класса. Если при объявлении класса эти слова опущены. то подразумевается доступ private. Поэтому в данном примере слово private можно было опустить
#ifndef _POINT2D_H
#define _POINT2D_H //если имя нигде не встречается, то имя логического выражения =0. Если есть, то =1
class Point2D
{
private:
double x,y;//+ еще Point2D *const this;
public:
double mod()const
{
return (sqrt(x*x+y*y));
}
void read();//Point2D *this
void print()const;
};
#endif
Метод mod определяется прямо при описании класса. Подобные методы по умолчанию считаются встроенными, т.е. inline. Два других типа требуют определения. Обычно для таких методов создаются файлы с расширением cpp.
При определении метода вне класса имя функции в заголовке определения должно быть уточнено именем класса с помощью бинарной операции расширения области видимости (::)
//Point2D.cpp
#include <iostream.h>
#include <math.h>
#include “point2d.h”
/*имя_класса::имя_член_функции*/
void Point2D::read()
{
cout<<”Точка:”;
cin>>x>>y;
}
void Point2D::print()const
{
cout<<”Точка: ”<<x<<” “<<y<<”\n”;
};
Если при определении член функции используется ключевое слово inline, то такая функция будет явно встраиваемой. При определении член-функции класса доступ к другим членам класса без использования операции уточнения (“->” и “.”). Это вызвано тем, что всем член-функциям передается неявный элемент – указатель на объект класса, для которого данная функция вызывается (this). Поэтому все неуточненные член-функции неявно уточняются этим указателем. (my_class *const this).
Для функции со спецификатором const, this имеет следующий вид: const my_class *const this .
//main.cpp
#include <iostream.h>
#include “point2d.h”
Point2D p0;//определен статически. Статические данные заполняются нулями.
