» » » Джесс Либерти - Освой самостоятельно С++ за 21 день.


Авторские права

Джесс Либерти - Освой самостоятельно С++ за 21 день.

Здесь можно скачать бесплатно "Джесс Либерти - Освой самостоятельно С++ за 21 день." в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Джесс Либерти - Освой самостоятельно С++ за 21 день.
Рейтинг:
Название:
Освой самостоятельно С++ за 21 день.
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Освой самостоятельно С++ за 21 день."

Описание и краткое содержание "Освой самостоятельно С++ за 21 день." читать бесплатно онлайн.



В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа и проектирования приложений. Подробно рассмотрены все средства и подходы конструирования собственных пользовательских классов.

Книга рассчитана на широкий круг читателей, интересующихся современными проблемами программирования.






 Упражнения

1. Опишите класс JetPlane (Реактивный самолет), наследуя его от двух базовых классов — Rocket (Ракета) и Airplane (Самолет).

class JetPlane : public Rocket, public Airplane

2. Произведите от класса JetPlane, объявленного в первом упражнении, новый класс 747.

class 747 : public JetPlane

3. Напишите программу, производящую классы Саг (Легковой автомобиль) и Bus (Автобус) от класса Vehicle (Машина). Опишите класс Vehicle как абстрактный тип данных с двумя чистыми виртуальными функциями. Классы Саг и Bus не должны быть абстрактными.

class Vehicle

{

   virtual void Move() = 0;

   virtual void Haul() = 0;

};

class Car : public Vehicle

{

   virtual void Move();

   virtual void Haul();

}:

class Bus : public Vehicle

{

   virtual void Move();

   virtual void Haul();

};

4. Измените программу из предыдущего упражнения таким образом, чтобы класс Саr тоже стал ADT, и произведите от него три новых класса: SportsCar (Спортивный автомобиль), Wagon (Фургон) и Coupe (Двухместный автомобиль-купе). В классе Саr должна замещаться одна из виртуальных функций, объявленных в классе Vehicle, с вызовом функции базового класса.

class Vehicle

{

   virtual void Move() = 0;

   virtual void Haul() = 0;

};

class Car : public Vehicle

{

   virtual void Move():

};

class Bus : public Vehicle

{

   virtual void Move();

   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 SomeFunction();

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

long (*function)(int);

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

long ( Car::*function)(int);

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

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

 Упражнения

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

1: class myClass

2: {

3:    public:

4:       myClass();

5:       ~myClass();

6:    private:

7:       int itsMember;

8:       static int itsStatic;

9: };

10:

11: myClass::myClass():

12: itsMember(1)

13: {

14:    itsStatic++;

15: }

16:

17:myClass::~myClass()

18: {

19:    itsStatic—-;

20: }

21:

22: int myClass::itsStatic = 0;

23:

24: int main()

25: {}

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

программу, которая создает три объекта, а затем выводит значения их перемен-

ных-членов и статической переменной-члена класса. Затем последовательно уда-

ляйте объекты и выводите на экран значение статической переменной-члена.

1: #include <iostream.h>

2:

3: class myClass

4: {

5:    public:

6:       myClass();

7:       ~myClass();

8:       void ShowMember()

9:       void ShowStatic();

10:   private:

11:      int itsMember;

12:      static int itsStatic;

13: };

14:

15: myClass::myClass():

16: itsMember(1)

17: {

18:    itsStatic++;

19: }

20:

21: myClass::~myClass()

22: {

23:    itsStatic--;

24:    cout << "In destructor. ItsStatic: " << itsStatic << endl;

25: }

26:

27: void myClass::ShowMember()

28: {

29:    cout << "itsMember: " << itsMereber << endl;

30: }

31:

32: void myClass::ShowStatic()

33: {

34:    cout << "itsStatic: " << itsStatic << endl;

35: }

36: int myClass::itsStatic = 0;

37:

38: int main()

39: {

40:    myClass obj1;

41:    obj1.ShowMember();

42:    obj1.ShowStatic();

43:

44:    myClass obj2;

45:    obj2.ShowMember();

46:    obj2.ShowStatic();

47:

48:    myClass obj3;

49:    obj3.ShowMember();

50:    obj3.ShowStatic();

51:    return 0;

52: }

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

1: #include <iostream.h>

2:

3: class myClass

4: {

5:    public:

6:       myClass();

7:       ~myClass();

8:       void ShowMember();

9:       static int GetStatic();

10:   private:

11:      int itsMember;

12:      static int itsStatic;

13: }

14:

15: myClass::myClass():

16: itsMember(l)

17: {

18:    itsStatic++;

19: }

20:

21: myClass::~myClass()

22: {

23:    itsStatic--;

24:    cout << "In destructor. ItsStatic: " << itsStatic << endl;

25: }

26:

27: void myClass::ShowMember()

28: {

29:    cout << "itsMember: " << itsMember << endl;

30: }

31:

32: int myClass::itsStatic = 0;

33:

34: void myClass::GetStatic()

35: {

36:    return itsStatic;

37: }

38:

39: int main()

40: {

41:    myClass obj1:

42:    obj1.ShowMeraber();

43:    cout << "Static: " << myClass::GetStatic() << endl;

44:

45:    myClass obj2;

46:    obj2.ShowMember();

47:    cout << "Static " << myClass::GetStatic() << endl;

48:

49:    myClass obj3;

50:    obj3.ShowMember();

51:    cout << "Static: " << myClass::GetStatic() << endl;

52:    return 0;

53: }

4. Создайте в программе из упражнения 3 указатель на функцию-член для доступа к значению нестатической переменной-члена и воспользуйтесь им для вывода этих значений на печать.

1: #include ciostream.h>

2:

3: class myClass

4: {

5:    public

6:       myClass();

7:       ~myClass();

8:       void ShowMember();

9:       static int GetStatic();

10:   private:

11:      int itsMember;

12:      static int itsStatic;

13: }

14:

15: myClass::myClass():

16: itsMember(1)

17: {

18:    itsStatic++;

19: }

20:

21: myClass::~myClassO

22: {

23:    itsStatic--;

24:    cout << "In destructor. ItsStatic: " << itsStatic << endl;

25: }

26:

27: void myClass::ShowMember()

28: {

29:    cout << "itsMember: " << itsMember << endl;

30: }

31:

32: int myClass::itsStatic = 0;

33:

34: int myClass::GetStatic()

35: {

36:    return itsStatic;

37: }

38:

39: int main()

40: {

41:    void (myClass::*PMF) ();

42:

43:    PMF=myClass: :ShowMember;

44:

45:    myClass obj1;

46:    (obj1.*PMF)();

47:    cout << "Static: " << myClass::GetStatic() << endl;

48:

49:    myClass obj2:

50:    (obj2.*PMF)();

51:    cout << "Static: " << myClass::GetStatic() << endl;

52:

53:    myClass obj3;

54:    (obj3.*PMF)();

55:    cout << "Static: " << myClass::GetStatic() << endl;

56:    return 0;

57: }

5. Добавьте две дополнительные переменные-члена к классу из предыдущих упраж-

нений. Добавьте методы доступа, возвращающие значения всех этих переменных.

Все функции-члены должны возвращать значения одинакового типа и иметь оди-

наковую сигнатуру. Для доступа к этим методам используйте указатель на функ-

цию-член.

1: #include<iostream.h>

2:

3: class myClass

4: {

5:    public:

6:       myClass();

7:       ~myClass();

8:       void ShowMember();

9:      void ShowSecond();

10:      void ShowThird();

11:      static int GetStatic();

12:   private:

13:      int itsMember;

14:      int itsSecond;

15:      int itsThird;

16:      static int itsStatic;

17: }

18:

19: myClass::myClass()

20:    itsMember(1),

21:    itsSecond(2),

22:    itsThird(3)

23: {

24:    itsStatic++;

25: }

27: myClass::^rnyClass()

28: {

29:    itsStatic--;

30:    cout << "In destructor. ItsStatic: " << itsStatic << endl;

31: }

32:

33: void myClass::ShowMember()

34: {

35:    cout << "itsMember: " << itsMember << endl;

36: }

37:

38: void myCIass:: ShowSecond()

39: {

40:    cout << "itsSecond: " << itsSecond << endl;

41: }

42:

43: void myClass::ShowThird()

44: {

45:    cout << "itsThird: " << itsThird << endl;

46: }

47: int myClass::itsStatic = 0;

48:

49: int myClass::GetStatic()

50: {

51:    return itsStatic;

52: }

53:

54: int main()

55: {

56:    void (myClass::*PMF) ();

57:

58:    myClass obj1;

59:    PMF=myClass::ShowMember;

60:    (obj1.*PMF)();

61:    PMF=myClass::ShowSecond;

62:    (obj1.*PMF)();

63:    PMF=myClass::ShowThird;

64:    (ob]1 "PMF)();

65:    cout << "Static: " << myClass::GetStatic() << endl;

66:

67:    myClass obj2;

68:    PMF=myClass::ShowMerober;

69:    (obj2.*PMF)();

70:    PMF=myClass::ShowSecond;

71:    (obj2.*PMF)();

72:    PMF=myClass::ShowThird;

73:    (obj2. *PMF)();

74:    cout << "Static: " << myClass::GetStatic() << endl;


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Освой самостоятельно С++ за 21 день."

Книги похожие на "Освой самостоятельно С++ за 21 день." читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Джесс Либерти

Джесс Либерти - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Джесс Либерти - Освой самостоятельно С++ за 21 день."

Отзывы читателей о книге "Освой самостоятельно С++ за 21 день.", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.