Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

111 wiersze
1.9KB

  1. \documentclass[uebung]{../../../lecture}
  2. \title{IPI: Übungsblatt 10}
  3. \author{Samuel Weidemaier, Christian Merten}
  4. \usepackage[]{listings}
  5. \usepackage{xcolor}
  6. \lstdefinestyle{mystyle}{
  7. commentstyle=\color{gray},
  8. language=C++,
  9. keywordstyle=\color{blue},
  10. numberstyle=\tiny\color{gray},
  11. stringstyle=\color{black},
  12. basicstyle=\ttfamily\footnotesize,
  13. breakatwhitespace=false,
  14. breaklines=true,
  15. captionpos=b,
  16. keepspaces=true,
  17. numbers=left,
  18. numbersep=5pt,
  19. showspaces=false,
  20. showstringspaces=false,
  21. showtabs=false,
  22. tabsize=2
  23. }
  24. \lstset{style=mystyle}
  25. \begin{document}
  26. \begin{aufgabe}
  27. siehe \textit{readfiles.cpp}
  28. \end{aufgabe}
  29. \begin{aufgabe}
  30. \begin{lstlisting}[language=C++, title=Fehlersuche, captionpos=b]
  31. #include <iostream>
  32. class A
  33. {
  34. public:
  35. int ap;
  36. void X();
  37. private:
  38. int aq;
  39. void aX();
  40. };
  41. class B : public A
  42. {
  43. public:
  44. int bp;
  45. void Y();
  46. private:
  47. int bq;
  48. void bY();
  49. };
  50. class C : public B
  51. {
  52. public:
  53. int cp;
  54. void Z();
  55. private:
  56. int cq;
  57. void cZ();
  58. };
  59. void A::X() { };
  60. void A::aX() { };
  61. void B::bY() { };
  62. void C::Z() { };
  63. void B::Y()
  64. {
  65. bq = bp;
  66. aq = ap; // Fehler: A::aq ist privat, also in B nicht sichtbar
  67. bY();
  68. }
  69. void C::cZ()
  70. {
  71. ap = 1;
  72. bp = 2;
  73. cq = 3;
  74. X();
  75. Y();
  76. aX(); // Fehler: A::aX() ist privat, also in C nicht sichtbar
  77. }
  78. int main()
  79. {
  80. A a; B b; C c;
  81. a.X();
  82. b.bY(); // Fehler: B::bY() ist privat, also hier nicht sichtbar
  83. c.cp = 4;
  84. c.bp = 1;
  85. c.ap = 2;
  86. c.aq = 5; // Fehler: A::aq ist privat, in C nicht sichtbar und erst recht nicht hier
  87. b.ap = c.ap;
  88. return 0;
  89. }
  90. \end{lstlisting}
  91. \end{aufgabe}
  92. \end{document}