
- •3.Динамическая память. Указатели и массивы. Ссылочный тип.
- •5.Доступ к элементам массива. Вычисление размера массива. Многомерные массивы.
- •7.Использование new и delete на примере динамических
- •9.Символьные массивы и строковые функции. Массивы в
- •13.Условный оператор? . Оператор switch.
- •15.Классы (fstream, ofstream, ifstream, ostream, istream, ios) и представители классов потокового ввода-вывода.
- •19.Объявление переменных указателей. Простые операторы с указателями.
- •21.Оператор if. Оператор if-else. Вложенные операторы if-else. Оператор if-else-if.
- •23.Операции динамического распределения памяти.
- •25.Передача значений параметров по умолчанию. Передача параметров по ссылке и ссылочные переменные.
- •27.Приоритет переменных с файловой и локальной областями действия. Операция уточнения области действия.
- •29.Пространство имен. Операторы namespace и using.
27.Приоритет переменных с файловой и локальной областями действия. Операция уточнения области действия.
В Visual C/C++ имеется четыре спецификатора класса памяти:
Auto, register, static, extern
Спецификатор класса памяти может предшествовать объявлениям переменных и функций, указывая компилятору, как следует хранить переменные в памяти и как получать доступ к переменным или функциям. Переменные, объявленные со спецификаторами auto или register, являются локальными, а со спецификаторами static и extern — глобальными. Память для локальной переменной выделяется заново всякий раз, когда выполнение программы достигает блока, в котором объявлена переменная, и удаляется по завершении выполнения этого блока.Память для глобальной переменной выделяется один раз при запуске программы и удаляется по завершении программы. Указанные четыре спецификатора определяют также область видимости переменных и функций, т.е. часть программы, в пределах которой к идентификатору можно обратиться по имени. На область видимости переменной и функции влияет место ее объявления в программе. Если объявление расположено вне любой функции, то говорят о внешнем уровне объявления. Если же оно находится в теле функции, то говорят о внутреннем уровне объявления. Смысл спецификаторов класса памяти несколько различается в зависимости от того, дается ли объявление переменной или функции и на внешнем или внутреннем уровне объявляется данный идентификатор. Область видимости глобальной переменной распространяется до конца файла. Обращение к переменной не может находиться выше той строки, где она была объявлена.
29.Пространство имен. Операторы namespace и using.
Пространство имен С понятием области действия имени связано понятие пространства имени. Пространством имени называется область программы, в пределах которой это имя должно быть уникальным. Различные категории имён имеют различные пространства имён. К их числу относятся: 1)Пространство имён глобальных объектов. 2)Пространство имен поименованных операторов (или операторов с меткой) - функция. 3)Пространство имён структур, классов, объединений и перечислимых типов зависит от контекста, в котором были объявлены структуры, классы, объединения. 4)Имена элементов структур, классов, объединений и перечислимых данных должны быть уникальны в пределах определения структуры, класса, объединения и перечислимых данных. 5)Имена переменных и функций, имена пользовательских типов должны быть уникальны в области определения: глобальные объекты должны иметь уникальное имя среди всех глобальных объектов и т.д. Пространство имен (namespace) — это способ объединения логически связанных объявлений под общим именем. Пример namespace
#include "iostream.h"
namespace first {int a;float b;}
namespace second {int a;float b;}
int _tmain(int argc, _TCHAR* argv[ ])
{ first::a = 1; second::a = 2; first::b = 1.23;second::b = 4.56;
Cout<<"first::a ="<< first::a<<endl;
Cout<<"second::a ="<<second::a<<endl;
Cout<<"first::b = "<<first::b;
Cout<<"second::b="<<second::b;
return 0;}
Для того, чтобы использовать все имена из пространства имен можно применить директиву using namespace. Пример использования using namespace std:
#include <iostream.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ cout<<"using namespace std "<<endl;
return 0;}
using namespace std позволяет использовать имена из пространства имен std. std - это имя стандартной библиотеки C++.