Программирование >>  Дополнительные возможности наследования 

1 ... 247 248 249 [ 250 ] 251 252 253 ... 265


virtual void Haul();

class SportsCar : public Car virtual void Haul();

class Coupe : public Car virtual void Haul();

День 14

1. Могут ли статические переменные-члены быть закрытыми?

Да. Поскольку они являются переменными-членами, то доступ к ним может управляться подобно доступу к любым другим переменным-членам. Если статическая переменная-член объявлена как закрытая, то доступ к ней можно получить только с помощью открытого статического метода класса.

2. Объявите статическую переменную-член.

static int itsStatic;

3. Объявите статическую функцию.

static int SomeFunctionO;

4. Объявите указатель на функцию, принимающую параметр типа int и возвращающую значение типа long.

long (* function)(int);

5. Измените указатель, созданный в задании 4, на указатель на функцию-член класса Саг.

long ( Car:: function)(int);

6. Объявите массив из десяти указателей, созданных в задании 5.

long ( Car::*function)(int) theArray [10];

Упражнения

1. Напищите короткую программу, объявляющую класс с одной обычной переменной-членом и одной статической переменной-членом. Создайте конструктор, выполняющий инициализацию переменной-члена и приращение статической переменной-члена. Затем объявите деструктор, который уменьшает на единицу значение статической переменной.

�56218



2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

class nyClass {

public:

myClassO;

nyGlass(); private:

int itsMenber;

static int itsStatic;

nyClass::nyClass(): itsMemberd)

itsStatic++;

myClass::nyClass() {

itsStatic--;

int myClass::itsStatic = 0;

int mainO {}

2. Используя программный блок из упражнения 1, напишите короткую выполняемую программу, которая создает три объекта, а затем выводит значения их переменных-членов и статической переменной-члена класса. Затем последовательно удаляйте объекты и выводите на экран значение статической переменной-члена.

ftinclude <iostream.h>

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18

class myClass {

public;

myClassO; myClassO; void ShowMemberO void ShowStaticO; private:

int itsMember; static int itsStatic;

myClass;:myClass(); itsMember(l)

<

itsStatic++;



19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

lyClass::nyClass() itsStatic--;

cout In destructor. ItsStatic: itsStatic endl;

void myClass::ShowMenber()

cout itsMenber: itsMember endl;

void myClass::ShowStatic()

cout itsStatic: itsStatic endl;

int nyClass;:itsStatic = 0;

int nainO {

myClass objl;

objI.ShowMenberO;

objI.ShowStaticO;

nyClass obj2;

obj2.ShowMenber();

obj2.ShowStatic();

nyClass obj3; obj3.ShowMember(); obj3.ShowStatic(); return 0;

3. Измените программу из упражнения 2 таким образом, чтобы доступ к статической переменной-члену осуществлялся с помощью статической функции-члена. Сделайте статическую переменную-член закрытой.

Sinclude <iostrean.h>

class nyClass {

public;

nyClass();

nyClass();

void ShowMenberO;

static int GetStaticO;



1 ... 247 248 249 [ 250 ] 251 252 253 ... 265

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика