Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lect04

.pdf
Скачиваний:
5
Добавлен:
06.02.2016
Размер:
434.07 Кб
Скачать

Пространствоимен

Обращениекэлементампространства именвыполняетсяспомощью

операциирасширениявидимости

::

space1::fun1(); space2::x = 7;

ит.п.

Пример:пространствоимен

#include "stdafx.h" #include <iostream> using namespace std;

namespace SpaceA {

void do_a() { cout << "SpaceA" << endl;

}

namespace SubSpaceA { void do_a() {

cout << "Sub-SpaceA" << endl;

}

}

}

Пример:пространствоимен

namespace SpaceB { void do_a() {

} }

cout << "SpaceB" << endl;

namespace SpaceA { void do_b() {

cout << "SpaceA - continued" << endl;

} }

Пример:пространствоимен

void test1() {

//Ошибка: нет функции do_a //в глоб. пространстве имён

//do_a();

//Ok - явно указано пространство

SpaceB::do_a();

SpaceA::do_a();

}

Пример:пространствоимен

void test2() {

//разрешаем свободное

//использование имен из

//SpaceB внутри функции using namespace SpaceB;

//нет ошибки

do_a();

}

Пример:пространствоимен

void test3(){

// разрешаем свободное

// использование // одного указанного имени

// из SpaceA::SubSpaceA // внутри функции

using SpaceA::SubSpaceA::do_a;

// нет ошибки

}do_a();

Пример:пространствоимен

int x = 7;

int _tmain(int argc, _TCHAR* argv[]) { int x = 5;

cout <<"test1" << endl; test1(); cout <<"test2" << endl; test2(); cout <<"test3" << endl; test3(); cout <<"x="<< x << " global x="

<< ::x << endl; cin.ignore(); return 0;

}

Результаты

test1 SpaceB SpaceA test2 SpaceB test3 Sub-SpaceA

x=5 global x=7

Статическиечленыкласса

Статическиечленыобъявляютсяс

использованиемключевогослова static

Статическиеатрибутыиметоды являютсяобщимидлявсех экземпляров.

Статическиеметодымогутиспользовать толькостатическиеатрибутыкласса.

Статическиечленыкласса

Обращениекстатическимчленам производитсяпутёмуказанияимени типаиоперациирасширенияобласти видимостииличерезобъект.

MyClass a; a.NormalMethod(); MyClass::StaticMethod(); a.StaticMethod();

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]