Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Питання до ДЕК.doc
Скачиваний:
19
Добавлен:
12.02.2016
Размер:
63.12 Кб
Скачать

2.1. Припускаючи, що функція-член класу getcrow() визначена поза класом, як оголосити її усередині класу?

class leverage

{

private:

void pry();

int getcrow();

public:

int crowbar;

leverage()

{crowbar = 0;}

};

int leverage::getcrow()

{return crowbar;}

class leverage

{

private:

int crowbar;

public:

void pry();

int getcrow()=0;

leverage()

{crowbar = 0;}

};

int leverage::getcrow()

{return crowbar;}

class leverage

{

private:

int getcrow();

leverage()

{crowbar = 0;}

public:

int crowbar;

void pry();

};

leverage int::getcrow()

{return crowbar;}

class leverage

{

private:

crowbar int;

public:

pry void ();

int getcrow ;

leverage()

{crowbar = 0;}

};

int::leverage getcrow()

{return crowbar;}

classleverage

{

private:

crowbar int;

private:

intgetcrow();

leverage()

{crowbar =0;}

public:

intcrowbar;

voidpry();

};

leverage int::getcrow()

{returncrowbar;}

2.1. Шаблони класів і функцій. Cпеціалізації ШK.

2.1. Шаблони функцій.

2.1. В якому рядку чи рядках компілятор знайде помилки? Поясніть чому?

a) class TV

b) {

c) public:

d) void SetStation(int Station);

e) int GetStation() const;

f) private:

g) int itsStation;

h) };

i) main()

j) {

k) TV myTV;

l) myTV.itsStation = 9;

m) TV.SetStation(10);

n) TV myOtherTv(2);

o) }

2.1. Скільки помилок знайде компілятор в цьому коді? Поясніть, які саме.

      1. class TV

      2. {

      3. public:

      4. void SetStation(int Station);

      5. int GetStation() const;

      6. private:

      7. int itsStation;

      8. };

      9. main()

      10. {

      11. TV myTV;

      12. myTV.itsStation = 9;

      13. TV.SetStation(10);

      14. TV myOtherTv(2);

      15. }

2.1. Знайдіть помилку в реалізації оператора присвоєння, та поясніть її:

  1. class SQUARE

  2. {

  3. int* itsSide;

  4. public:

  5. SQUARE operator =(const SQUARE& rhs)

  6. {

  7. itsSide = new int;

  8. *itsSide = rhs.GetSide();

  9. return this;

  10. }

  11. GetSide(){return *itsSide;}

  12. };

2.1. В якому рядку (чи рядках) зроблена помилка? Поясніть її :

  1. class Shape()

  2. {

  3. public:

  4. Shape();

  5. virtual ~Shape();

  6. virtual Shape( const Shape& );

  7. };

2.1. В якому рядку (чи рядках) зроблена помилка? Поясніть її:

  1. class Shape { };

  2. class Rectangle: public Shape { };

  3. void SomeFunction (Rectangle) { }

  4. int main()

  5. {

  6. Rectangle * pRect = new Shape;

  7. SomeFunction (*pRect);

  8. }

2.1.В якому рядку чи рядках компілятор знайде помилки? Поясніть чому?

a) class TV

b) {

c) public:

d) void SetStation(int Station);

e) int GetStation() const;

f) private:

g) int itsStation;

h) };

i) main()

j) {

k) TV myTV;

l) myTV.itsStation = 9;

m) TV.SetStation(10);

n) TV myOtherTv(2);

o) }

2.1.В якому рядку (чи рядках) зроблена помилка, поясніть чому:

  1. class Shape { };

  2. class Rectangle: public Shape { };

  3. void SomeFunction (Rectangle) { }

  4. int main()

  5. {

  6. Rectangle * pRect = new Shape;

  7. SomeFunction (*pRect);

  8. }

2.1.Який з вибраних варіантів ілюструє оголошення класу A та інтерфейсу В, при якому неможливим є наслідування А в подальшому?

class A

{

friend class CFinal;

private:

A() {}

};

//sample class

class CFinal:

private

virtual A

{

};

class A

{

public:

A() =0 ;

};

// sample class

class CFinal : private virtual A

{

B(){}

};

protected class A

{

public:

A() {}

};

// sample class

class CFinal : A

{

};

class A

{

public:

A() =0 ;

};

// sample class

class CFinal : A

{

B(){}

};

class A

{

A();

public:

};

// sample class

class CFinal : private virtual A

{

B(){}

};

2.1.Знайдіть помилку в реалізації оператора присвоєння, та поясніть їх.

  1. class SQUARE

  2. {

  3. int* itsSide;

  4. public:

  5. SQUARE operator =(const SQUARE& rhs)

  6. {

  7. itsSide = new int;

  8. *itsSide = rhs.GetSide();

  9. return this;

  10. }

  11. GetSide(){return *itsSide;}

  12. };

2.1. Який з вибраних варіантів ілюструє оголошення класу A та інтерфейсу В, при якому неможливим є наслідування А в подальшому?Поясніть чому?

а)

б)

в)

г)

class A

{

friend class CFinal;

private:

A() {}

};

//sample class

class CFinal:

private

virtual A

{

};

protected class A

{

public:

A() {}

};

// sample class

class CFinal : A

{

};

class A

{

public:

A() =0 ;

};

// sample class

class CFinal : A

{

B(){}

};

class A

{

A();

public:

};

// sample class

class CFinal : private virtual A

{

B(){}

};

2.1.Опишіть класVehicle(транспортний засіб) як абстрактний тип даних.

2.1.В чому перевага віртуальних функцій над стандартними діями розпізнавання типу об’єкта в процесі виконання програми?

2.1.Нехай, для створення прямокутника із заокругленими кутами використовується класRoundRect, який є похідним від двох базових класів –RectangleіCircle, які, в свою чергу, походять від спільного класуShape. Опишіть, скільки об’єктів класуShapeстворюється при створенні одного об’єкта класуRoundRect.

2.1.Обчислити значення що залишаться в змінних a, b після виконання операторів: a:=1.4; b:=a*5+2.5; a:=(a/2-2*b)*2-a;

2.1.Оголосіть класVehicle(транспортний засіб) як абстрактний тип даних.

2.1.Описати змінну abc як матрицю з 10 рядками і 15 стовпцями елементів типу real.

2.1.Перевантажтеoperator+для змінних типуshort int.

2.1. Перевантажтеoperator++так, щоб він виконував операцію декременту (зменшення).

2.1.Чи наслідуються дані і функції-члени базового класу в похідних класах? Якщо класDogпоходить від класуMammal, а класMammal– від класуAnimals, то чи унаслідує класDogдані і функції класуAnimals? Наведіть приклад програми.

2.1.Чим відрізняється оператор непрямого доступу (*) від оператора звертання за адресою (&)? Наведіть приклади.

2.1.Як називаються стандартні операції збільшення на одиницю і зменшення на одиницю і як вони записуються на мовіC?

2.1.Якщо класDogпоходить від класуMammal, а класMammal– від класуAnimalі Mammal переозначує функцію класу Animal, то яку версію функції отримає клас Dog – базову (відAnimal) чи переозначену (відMammal)? Наведіть приклад.

2.1. Запишіть як виглядає оголошення віртуального конструктора класуA?

2.1.Оголосіть клас Vehicle (транспортний засіб) як абстрактний тип даних.

2.1.Описати в чому різниця між віртуальною функцією і віртуальним наслідування.

2.1.Як описуються двовимірні масиви? Написати приклад опису двовимірного масиву.