auto автоматический
break разрыв
case вариант
catch перехватить
char символ
class класс
const конст
continue продолжить
default по умолчанию
delete удалить
do делать
double двойной
else иначе
enum перечисление
extern внешний
float плавающий
for для
friend друг
goto переход на
if если
inline подстановка
int целый
long длинный
new новый
operator оператор
private частный
protected защищенный
public общий
register регистровый
return возврат
short короткий
signed знаковый
sizeof размер
static статический
struct структура
switch переключатель
template шаблон типа
this текущий
throw запустить
try проверить
typedef тип
union объединение
unsigned беззнаковый
virtual виртуальный
void пустой
volatile изменяемый
while пока
* ПРИМЕРЫ *
b1_1_1.cxx
#include ‹stream.hxx›
main()
{
cout ‹‹ "Hello, world\n";
}
b1_1_3.cxx
#include ‹stream.hxx›
main ()
{
int inch = 0;
cout ‹‹ "inches=";
cin ›› inch;
cout ‹‹ inch;
cout ‹‹ "in = ";
cout ‹‹ inch*2.54;
cout ‹‹ " cm\n";
}
b1_4_5v.cxx
#include ‹stream.hxx›
main()
{
const float fac = 2.54;
float x, in, cm;
char ch = 0;
for (int i= 0; i‹ 8; i++) {
cerr ‹‹ "enter length: ";
cin ›› x ›› ch;
if (ch == 'i') {// inch
in = x;
cm = x*fac;
}
else if (ch == 'c') {// cm
in = x/fac;
cm = x;
}
else
in = cm = 0;
cerr ‹‹ in ‹‹ "in = " ‹‹ cm ‹‹ " cm\n";
}
}
b1_5.cxx
#include ‹stream.hxx›
extern float pow(float, int);
main()
{
for (int i=0; i‹10; i++) cout ‹‹ pow(2,i) ‹‹ "\n";
}
extern void error(char *);
float pow(float x, int n)
{
if (n ‹ 0) {
error ("sorry, negative exponent to pow()");
return 0;
}
switch (n) {
case 0: return 1;
case 1: return x;
default: return x*pow(x,n-1);
}
}
void error(char *s)
{
cout ‹‹ s;
}
b1__13.cxx
#include ‹stream.hxx›
// 1.11
class vector {
int *v;
int sz;
public:
vector(int); // constructor
~vector(); // destructor
int size() { return sz; }
void set_size(int);
int& operator[](int);
int& elem(int i) { return v[i]; }
};
// 1.13
class vec: public vector {
int low, high;
public:
vec(int, int);
int& elem(int);
int& operator[](int);
};
main()
{
vector a(10);
for (int i=0; i‹a.size(); i++) {
a[i] = i;
cout ‹‹ a[i] ‹‹ " ";
}
cout ‹‹ "\n";
vec b(10,19);
for (i=0; i‹b.size(); i++) b[i+10] = a[i];
for (i=0; i‹b.size(); i++) cout ‹‹ b[i+10] ‹‹ " ";
cout ‹‹ "\n";
}
extern void exit(int);
// 1.13
void error(char* p)
{
cerr ‹‹ p ‹‹ "\n";
exit (1);
}
// 1.11
vector::vector(int s)
{
if (s‹=0) error("bad vector size");
sz = s;
v = new int[s];
}
int& vector::operator[](int i)
{
if (i‹0 || sz‹=i) error("vector index out of range");
return v[i];
}
vector::~vector()
{
delete v;
}
// 1.13
int& vec::elem(int i)
{
return vector::elem(i-low);
}
vec::vec(int lb, int hb): (hb-lb+1)
{
if (hb-lb‹0) hb = lb;
low = lb;
high = hb;
}
void vector::set_size(int) {/* dummy */}
int& vec::operator[](int i)
{
if (i‹low || high‹i) error("vec index out of range");
return elem(i);
}
b1__14.cxx
#include‹stream.hxx›
extern void exit(int);
extern void error(char*);
// 1.11
class vector {
int *v;
int sz;
public:
vector(int); // constructor
~vector(); // destructor
int size() { return sz; }
void set_size(int);
int& operator[](int);
int& elem(int i) { return v[i]; }
};
vector::vector(int s)
{
if (s‹=0) error("bad vector size");
sz = s;
v = new int[s];
}
int& vector::operator[](int i)
{
if (i‹0 || sz‹=i) error("vector index out of range");
return v[i];
}
vector::~vector()
{
delete v;
}
// 1.14
class Vec: public vector {
public:
Vec(int s): (s) {}
Vec(Vec&);
~Vec() {}
void operator=(Vec&);
void operator*=(Vec&);
void operator*=(int);
};
Vec::Vec(Vec& a): (a.size())
{
int sz = a.size();
for (int i = 0; i‹sz; i++) elem(i) =a.elem(i);
}
void Vec::operator=(Vec& a)
{
int s = size();
if (s != a.size()) error("bad vector size for =");
for (int i =0; i‹s; i++) elem(i)=a.elem(i);
}
Vec operator+(Vec& a, Vec& b)
{
int s = a.size();
if (s!= b.size()) error("bad vector size for +");
Vec sum(s);
for (int i=0; i‹s; i++)
sum.elem(i) = a.elem(i) + b.elem(i);
return sum;
}
void error(char* p)
{
cerr ‹‹ p ‹‹ "\n";
exit (1);
}
void vector::set_size(int) {}
main()
{
Vec a(10);
Vec b(10);
for (int i=0; i‹a.size(); i++) a[i] = i;
b = a;
Vec c = a+b;
for (i=0; i‹c.size(); i++) cout ‹‹ c[i] ‹‹ "\n";
}