Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.93 KB | None | 0 0
  1. 1)
  2. Като анализирате следващата програма, добавете като коментар къде при изпълнение на главната функция ще се изведат следните изрази на екран и обяснете защо.
  3.  
  4. "Mammal constructor...";
  5.  
  6. "Mammal(int) constructor...";
  7.  
  8. "Mammal destructor...";
  9.  
  10. "Dog constructor...“;
  11.  
  12. "Dog(int) constructor“;
  13.  
  14. „Dog(int, int) constructor”;
  15.  
  16. „Dog(int, int, BREED) constructor“;
  17.  
  18. „Dog(int, BREED) constructor“;
  19.  
  20. „Dog destructor“;
  21.  
  22. Програма 1
  23.  
  24. #include <iostream>
  25.  
  26. using namespace std;
  27.  
  28. enum BREED { YORKIE, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB };
  29.  
  30. class Mammal
  31.  
  32. {
  33.  
  34. public:
  35.  
  36. Mammal();
  37.  
  38. Mammal(int age);
  39.  
  40. ~Mammal();
  41.  
  42. int GetAge() const { return itsAge; }
  43.  
  44. void SetAge(int age) { itsAge = age; }
  45.  
  46. int GetWeight() const { return itsWeight; }
  47.  
  48. void SetWeight(int weight) { itsWeight = weight; }
  49.  
  50. void Speak() const { cout << "Mammal sound!\n"; }
  51.  
  52. void Sleep() const { cout << "shhh. I'm sleeping.\n"; }
  53.  
  54. protected:
  55.  
  56. int itsAge;
  57.  
  58. int itsWeight;
  59.  
  60. };
  61.  
  62. class Dog : public Mammal
  63.  
  64. {
  65.  
  66. public:
  67.  
  68. Dog();
  69.  
  70. Dog(int age);
  71.  
  72. Dog(int age, int weight);
  73.  
  74. Dog(int age, BREED breed);
  75.  
  76. Dog(int age, int weight, BREED breed);
  77.  
  78. ~Dog();
  79.  
  80. BREED GetBreed() const { return itsBreed; }
  81.  
  82. void SetBreed(BREED breed) { itsBreed = breed; }
  83.  
  84. void WagTail() { cout << "Tail wagging...\n"; }
  85.  
  86. void BegForFood() { cout << "Begging for food...\n"; }
  87.  
  88. private:
  89.  
  90. BREED itsBreed;
  91.  
  92. };
  93.  
  94. Mammal::Mammal():
  95.  
  96. itsAge(1),
  97.  
  98. itsWeight(5)
  99.  
  100. {
  101.  
  102. cout << "Mammal constructor...\n";
  103.  
  104. }
  105.  
  106. Mammal::Mammal(int age):
  107.  
  108. itsAge(age),
  109.  
  110. itsWeight(5)
  111.  
  112. {
  113.  
  114. cout << "Mammal(int) constructor...\n";
  115.  
  116. }
  117.  
  118.  
  119.  
  120.  
  121.  
  122. Mammal::~Mammal()
  123.  
  124. {
  125.  
  126. cout << "Mammal destructor...\n";
  127.  
  128. }
  129.  
  130.  
  131.  
  132. Dog::Dog():
  133.  
  134. itsBreed(YORKIE)
  135.  
  136. {
  137.  
  138. cout << "Dog constructor...\n";
  139.  
  140. }
  141.  
  142.  
  143.  
  144. Dog::Dog(int age):
  145.  
  146. Mammal(age),
  147.  
  148. itsBreed(YORKIE)
  149.  
  150. {
  151.  
  152. cout << "Dog(int) constructor...\n";
  153.  
  154. }
  155.  
  156. Dog::Dog(int age, int weight):
  157.  
  158. Mammal(age),
  159.  
  160. itsBreed(YORKIE)
  161.  
  162. {
  163.  
  164. itsWeight = weight;
  165.  
  166. cout << "Dog(int, int) constructor...\n";
  167.  
  168. }
  169.  
  170. Dog::Dog(int age, int weight, BREED breed):
  171.  
  172. Mammal(age),
  173.  
  174. itsBreed(breed)
  175.  
  176. {
  177.  
  178. itsWeight = weight;
  179.  
  180. cout << "Dog(int, int, BREED) constructor...\n";
  181.  
  182. }
  183.  
  184. Dog::Dog(int age, BREED breed):
  185.  
  186. Mammal(age),
  187.  
  188. itsBreed(breed)
  189.  
  190. {
  191.  
  192. cout << "Dog(int, BREED) constructor...\n";
  193.  
  194. }
  195.  
  196. Dog::~Dog()
  197.  
  198. {
  199.  
  200. cout << "Dog destructor...\n";
  201.  
  202. }
  203.  
  204. int main()
  205.  
  206. {
  207.  
  208. Dog fido;
  209.  
  210. Dog rover(5);
  211.  
  212. Dog buster(6,8);
  213.  
  214. Dog yorkie (3,YORKIE);
  215.  
  216. Dog dobbie (4,20,DOBERMAN);
  217.  
  218. fido.Speak();
  219.  
  220. rover.WagTail();
  221.  
  222. cout << "Yorkie is " << yorkie.GetAge() << " years old\n";
  223.  
  224. cout << "Dobbie weighs ";
  225.  
  226. cout << dobbie.GetWeight() << " pounds\n";
  227.  
  228. return 0;
  229.  
  230. }
  231.  
  232.  
  233. ----------
  234.  
  235. 2)
  236.  
  237. Отбележете като коментар в главната функция на следващата програма, колко крачки ще направи обектът bigAnimal и колко обектът fido. Обяснете защо.
  238.  
  239.  
  240.  
  241. Програма 2
  242.  
  243. #include <iostream>
  244.  
  245. using namespace std;
  246.  
  247. enum BREED { YORKIE, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB };
  248.  
  249. class Mammal
  250.  
  251. {
  252.  
  253. public:
  254.  
  255. Mammal() { cout << "Mammal constructor...\n"; }
  256.  
  257. ~Mammal() { cout << "Mammal destructor...\n"; }
  258.  
  259. void Move()const { cout << "Mammal move a step!\n"; }
  260.  
  261. void Sleep()const { cout << "shhh. I'm sleeping.\n"; }
  262.  
  263. protected:
  264.  
  265. int itsAge;
  266.  
  267. int itsWeight;
  268.  
  269. };
  270.  
  271. class Dog : public Mammal
  272.  
  273. {
  274.  
  275. public:
  276.  
  277. Dog(){ cout << "Dog constructor...\n"; }
  278.  
  279. ~Dog(){ cout << "Dog destructor...\n"; }
  280.  
  281. void WagTail() { cout << "Tail wagging...\n"; }
  282.  
  283. void BegForFood() { cout << "Begging for food...\n"; }
  284.  
  285. void Move()const { cout << "Dog move 5 step\n"; }
  286.  
  287. private:
  288.  
  289. BREED itsBreed;
  290.  
  291. };
  292.  
  293. int main()
  294.  
  295. {
  296.  
  297. Mammal bigAnimal;
  298.  
  299. Dog fido;
  300.  
  301. bigAnimal.Move();
  302.  
  303. fido.Move();
  304.  
  305. return 0;
  306.  
  307. }
  308.  
  309.  
  310.  
  311. =====================
  312.  
  313. 3)
  314.  
  315. Променете дадената програма така, че обектът fido да направи крачки, чийто брой да се въвежда от клавиатурата.
  316.  
  317. a)като промените и декларация на клас, и главната функция
  318.  
  319. б)като само промените главната функция, без да променяте декларация на клас
  320.  
  321.  
  322.  
  323. Програма 3
  324.  
  325. #include <iostream>
  326.  
  327. using namespace std;
  328.  
  329. class Mammal
  330.  
  331. {
  332.  
  333. public:
  334.  
  335. void Move() const { cout << "Mammal move 1 step\n"; }
  336.  
  337. void Move(int distance) const
  338.  
  339. { cout << "Mammal move ";
  340.  
  341. cout << distance <<" steps.\n"; }
  342.  
  343.  
  344.  
  345.  
  346.  
  347. protected:
  348.  
  349. int itsAge;
  350.  
  351. int itsWeight;
  352.  
  353. };
  354.  
  355.  
  356.  
  357. class Dog : public Mammal
  358.  
  359. {
  360.  
  361. public:
  362.  
  363. void Move() const { cout << "Dog move 5 steps.\n"; }
  364.  
  365. };
  366.  
  367.  
  368.  
  369. int main()
  370.  
  371. {
  372.  
  373. Mammal bigAnimal;
  374.  
  375. Dog fido;
  376.  
  377. bigAnimal.Move();
  378.  
  379. bigAnimal.Move(2);
  380.  
  381. fido.Move();
  382.  
  383. return 0;
  384.  
  385.  
  386. ====
  387.  
  388. 4)
  389. Отбележете коя функция е виртуална в базовия клас . Отбележете като коментар в главната функция колко крачки ще направи обектът с указател pSharo и какво ще изведе като звук. Направете същото и за обекта с указател pMecho.
  390.  
  391.  
  392.  
  393. Програма 4
  394.  
  395. #include <iostream>
  396.  
  397. using namespace std;
  398.  
  399. class Mammal
  400.  
  401. {
  402.  
  403. public:
  404.  
  405. Mammal():itsAge(1) { cout << "Mammal constructor...\n"; }
  406.  
  407. ~Mammal() { cout << "Mammal destructor...\n\n"; }
  408.  
  409. virtual void Move() const { cout << "Mammal move one step\n"; }
  410.  
  411. void Speak() const { cout << "Mammal speak!\n"; }
  412.  
  413. protected:
  414.  
  415. int itsAge;
  416.  
  417. };
  418.  
  419. class Dog : public Mammal
  420.  
  421. {
  422.  
  423. public:
  424.  
  425. Dog() { cout << "Dog Constructor...\n"; }
  426.  
  427. ~Dog() { cout << "Dog destructor...\n\n"; }
  428.  
  429. void WagTail() { cout << "Wagging Tail...\n"; }
  430.  
  431. void Speak()const { cout << "Wow!Wow!\n"; }
  432.  
  433. void Move()const { cout << "Dog moves 5 steps...\n"; }
  434.  
  435. };
  436.  
  437. int main()
  438.  
  439. {
  440.  
  441. Mammal *pSharo = new Dog;
  442.  
  443. pSharo->Move();
  444.  
  445. pSharo->Speak();
  446.  
  447. delete pSharo;
  448.  
  449.  
  450.  
  451. Dog *pMecho = new Dog;
  452.  
  453. pMecho->Move();
  454.  
  455. pMecho->Speak();
  456.  
  457. pMecho->WagTail();
  458.  
  459. delete pMecho;
  460.  
  461. return 0;
  462.  
  463. }
  464.  
  465.  
  466. =========
  467.  
  468. 5)
  469.  
  470. Анализирайте следващия програмен код и обяснете какъв вид наследственост е приложена-единична или множествена. . Aкo създадете следните обекти: 1 кон и 4 пегаса и запълните масива от указатели съответно, кои от обектите ще могат да летят и защо.
  471.  
  472.  
  473.  
  474. Програма 5
  475.  
  476. #include <iostream>
  477.  
  478. using namespace std;
  479.  
  480.  
  481.  
  482. class Animal
  483.  
  484. {
  485.  
  486. public:
  487.  
  488. virtual void Move(){}
  489.  
  490. private:
  491.  
  492. int itsAge;
  493.  
  494. };
  495.  
  496.  
  497.  
  498. class Horse :public Animal
  499.  
  500. {
  501.  
  502. public:
  503.  
  504. void Move(){ cout << "Galloping...\n"; }
  505.  
  506.  
  507.  
  508. };
  509.  
  510. class Pegasus : public Animal
  511.  
  512. {
  513.  
  514. public:
  515.  
  516. void Move() { cout << "I can fly! I can fly! I can fly!\n"; }
  517.  
  518. };
  519.  
  520. const int NumberHorses = 5;
  521.  
  522. int main()
  523.  
  524. {
  525.  
  526. Animal* Ranch[NumberHorses];
  527.  
  528. Animal* pHorse; //
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536. int choice,i;
  537.  
  538. for (i=0; i<NumberHorses; i++)
  539.  
  540. {
  541.  
  542. cout << "(1)Horse (2)Pegasus: ";
  543.  
  544. cin >> choice;
  545.  
  546. if (choice == 2)
  547.  
  548. pHorse = new Pegasus;
  549.  
  550. else
  551.  
  552. pHorse = new Horse;
  553.  
  554. Ranch[i] = pHorse;
  555.  
  556. }
  557.  
  558. cout << "\n";
  559.  
  560.  
  561.  
  562. for (i=0; i<NumberHorses; i++)
  563.  
  564. {
  565.  
  566. Ranch[i]->Move();
  567.  
  568. delete Ranch[i];
  569.  
  570. }
  571.  
  572. return 0;
  573.  
  574.  
  575.  
  576. }
  577.  
  578. ======
  579.  
  580. 6)
  581.  
  582. Анализирайте следващия програмен код и обяснете какъв вид наследственост е приложена-единична или множествена. Aкo създадете следните обекти: 2 коня и 3 пегаса и запълните масива от указатели съответно, какви звуци ще издават обектите и кои от тях ще могат да летят.
  583.  
  584. Програма 6
  585.  
  586. #include <iostream>
  587.  
  588. using namespace std;
  589.  
  590. class Horse
  591.  
  592. {
  593.  
  594. public:
  595.  
  596. Horse() { }
  597.  
  598. virtual ~Horse() { }
  599.  
  600. virtual void Fly() const
  601.  
  602. {
  603.  
  604. cout << "I can't' fly! I can't fly! I can't' fly! ";
  605.  
  606. }
  607.  
  608. virtual void Whinny() const { cout << "Whinny!... "; }
  609.  
  610. private:
  611.  
  612. int itsAge;
  613.  
  614. };
  615.  
  616. class Bird
  617.  
  618. {
  619.  
  620. public:
  621.  
  622. Bird() { }
  623.  
  624. virtual ~Bird() { }
  625.  
  626. virtual void Chirp() const { cout << "Chirp... "; }
  627.  
  628. virtual void Fly() const
  629.  
  630. {
  631.  
  632. cout << "I can fly! I can fly! I can fly! ";
  633.  
  634. }
  635.  
  636. private:
  637.  
  638. int itsWeight;
  639.  
  640. };
  641.  
  642. class Pegasus : public Horse, public Bird
  643.  
  644. {
  645.  
  646. public:
  647.  
  648. void Chirp() const { Whinny(); }
  649.  
  650. void Fly() const {Bird::Fly();}
  651.  
  652. Pegasus() { }
  653.  
  654. ~Pegasus() { }
  655.  
  656. };
  657.  
  658. const int MagicNumber = 5;
  659.  
  660. int main()
  661.  
  662. {
  663.  
  664. Horse* Ranch[MagicNumber];
  665.  
  666. Horse * pHorse;
  667.  
  668. int choice,i;
  669.  
  670. for (i=0; i<MagicNumber; i++)
  671.  
  672. {cout << "\n(1)Horse (2)Pegasus: ";
  673.  
  674. cin >> choice;
  675.  
  676. if (choice == 2)
  677.  
  678. pHorse = new Pegasus;
  679.  
  680. else
  681.  
  682. pHorse = new Horse;
  683.  
  684. Ranch[i] = pHorse; }
  685.  
  686. for (i=0; i<MagicNumber; i++)
  687.  
  688. { cout << "\nRanch[" << i << "]: " ;
  689.  
  690. Ranch[i]->Whinny();
  691.  
  692. Ranch[i]->Fly();
  693.  
  694. delete Ranch[i]; }
  695.  
  696.  
  697.  
  698. return 0; }
  699.  
  700.  
  701.  
  702.  
  703. =======
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement