CPSC 421 OOP Final Exam Crossword I
Across
- 3. A design choice in C++ is to implement an Abstract class using an _____ method
- 6. Minimizing dependencies is minimizing _____
- 9. For a function pointer, the function must be ______ before it is passed
- 11. Loosely-coupled modules are easier to _____ separately
- 12. For good design, _____ the use of dependencies as much as possible
- 13. Related to a programming idiom
- 14. The std::optional completely replaces using _____ for optional single value attributes
- 15. Inline lambda functions create several _____ issues
- 17. The goal of coupling is to _____ external interaction
- 20. A design choice in C++ is to implement a method of an Abstract class using a _____ _____ method
- 21. Originated from Church's lambda _______
- 23. Broad, external libraries, e.g., Boost, have a _____ risk level
- 27. _____ _____ as a handler is limited to free functions
- 30. Inversion of Control inverts _____ of the control flow of the program
- 31. The null state of char* has the value _____
- 32. A high degree of coupling is _____ coupled
- 34. A low degree of coupling is _____ coupled
- 35. Functions exchange data using global data instead of arguments is _____ coupling
- 36. A problem with resources such as memory when we lose all access to them
- 38. A type of resource (two words)
- 39. The lambda function: [](char& c) { c = std::toupper(c); } uses an ____ parameter
- 43. The [] in the lambda expression [](int n1, int n2)->bool {}
- 45. std::optional can be used on any ____ type (non-pointer)
- 46. The "single biggest, most critical vulnerability of the last decade" is in the package _____
- 47. Naming things is good when we have a good name, but a _____ when we don't
- 51. A C function for sorting that uses a function pointer for comparison
- 53. All software is built using other _____
- 55. Static polymorphism is also known as _____ _____
- 57. Lambda functions are very efficient and very _____
- 59. Both multiplicities [1..*] and [*] are ______
- 60. A program may do this due to improperly-used resources
- 62. A single interface to entities of different types where which code is run depends on the type
- 64. A subtype derives from a _____
- 65. The lambda function: [](int n1, int n2)->bool { return n1 < n2; } is an example of a ____ comparison
- 66. Classes with zero to minimal coupling are _____
- 68. UML Generalization is described as an _____-a relationship
- 69. Tightly-coupled modules can be more _____
- 74. In good design, dependencies are _____ and minimized as much as possible
- 75. One alternative to a smart pointer is to create a custom C++ _____
- 76. The {} in the lambda expression [](int n1, int n2)->bool {}
- 77. In C++, _____ is a type of static polymorphism
- 78. The lambda function: [](const void* e1, const void* e2)->int { /* ... */ } is an example of an ____ comparison
- 82. The abbreviation for Inversion of Control
- 83. A type of pointer that follows RAII
- 84. A derived class derives from a _____ class
- 85. Inversion of Control is essential for _____
- 87. A solution introduced in c++17 is ______
- 88. A dependency risk is that _____ fixes of the dependency may stop
- 90. When a module directly references the content of another module, is _____ coupling
- 93. A C++ smart pointer that is in the standard
- 95. Libraries with very specific usage, e.g., CLI11, have a _____ risk level
- 96. One module only passes the data required by another module is _____ coupling
- 98. The client passes a flag or command that explicitly controls what the called code is doing is _____ coupling
- 100. The purpose of generalization is to _____ design problems
- 101. A type of resource
- 107. The std::optional allows for ____ loading/allocation
- 108. Coupling is an _____ measure
- 109. A function pointer is slightly _____ than a direct call
- 111. How we can reset a std::optional back to an empty state
- 113. Loosely-coupled modules allow us to easily _____ individual parts
- 115. Instead of your code calling a function/method, you _____ parts of your code
- 117. Function pointers as a handler can only use lambda's with _____ capture
- 118. A type of free (deallocation) performed more than once on the same allocation
- 120. A resource must be properly ____ before use
- 121. For good design, _____ dependencies
- 122. A resource must be properly ____ before use
- 124. A resource must be properly _____ after use
- 125. For good design, favor _____ (.cpp) over interface (.hpp)
- 126. C++ _____ as a handler has no limits and is extremely fast
- 127. _______ as a handler has no limits but is very slow
Down
- 1. _____ dependencies are dependencies on the code that we (or our team) write
- 2. Special-purpose libraries, e.g., libarchive, have a _____ risk level
- 4. A char* can have ____ states
- 5. An advantage to overloading is that it is easier to remember the correct _____ name
- 7. Lambda functions with an empty capture, i.e., "[]", can be passed to _____ _______
- 8. A type of initialization where we wait to allocate until right before it is needed
- 9. Each _____ is a concern
- 10. Dynamic polymorphism requires _____ methods
- 16. A recurring construct to fix a commonly occurring problem (two words)
- 18. A dependency risk is that _____ fixes of the dependency may stop
- 19. The size of the impact of the NPM package left-pad is primarily due to _____ updates
- 22. Coupling has a significant effect on the _____ of a system
- 24. An _____ mostly consists of all pure-virtual methods
- 25. Client code passes parameters via a non-private data format is _____ coupling
- 26. A subtype derives from a _____
- 28. In the YAMLParser IoC example, the only method in YAMLParser that the DockerReport calls
- 29. One module passes more data than needed to another module is _____ coupling
- 33. A type of resource
- 37. In RAII, the resource is typically allocated in the _____
- 40. UML Generalization is not a _____-a relationship
- 41. The -> in the lambda expression [](int n1, int n2)->bool {}
- 42. A dependency risk is that the dependency may become _____
- 44. In the real world, have someone with the responsibility to _____ the current state of each dependency
- 48. UML Generalization is not a _____-a relationship
- 49. Multivalued multiplicities are ______ in C++
- 50. Use of other software means that we are _____ on that software to work, work correctly, and be available for a given timeframe
- 52. Similar to much _____-_____ programming
- 54. The capture and _____ _____ are very important
- 56. In the YAMLParser IoC, many of the methods became _____
- 58. _____ dependencies are dependencies on code we (or our team) did not write
- 61. Both multiplicities [1] and [0..1] are ____ ____
- 63. An _____ class that consists of at least one pure virtual method, and we cannot create objects of this class type
- 64. In C++, _____ is a type of static polymorphism
- 67. A dependency risk is that _____ development of the dependency may stop
- 70. Multiplicity in UML primarily refers to _____ in a C++ class
- 71. Both multiplicities [0..1] and [0..*] are ______
- 72. Static polymorphism is determined at _____ _____
- 73. For low-level functionality with a function, Inversion of Control is often referred to as a _____
- 79. In RAII, the resource is deallocated in the ______
- 80. Function often cannot be _____ close to where they are used
- 81. A lambda function is also known as an _____ function
- 83. The problem with bidirectional associations is that we cannot develop, test, or used them _____
- 86. Standard libraries of the programming language, e.g., C++ standard libraries, have a _____ _____ risk level
- 89. A special kind of coupling, _____ coupling, is between a derived and base class
- 91. A std::string can have ____ states
- 92. One use case for std::optional is for an _____ return
- 94. The () in the lambda expression [](int n1, int n2)->bool {}
- 97. What the A in RAII stands for
- 99. A disadvantage to overloading is that it can disguise large differences in _____
- 101. Both multiplicities [1] and [1..*] are ______
- 102. What the second I in RAII stands for
- 103. For good design, minimize the _____ of where the dependency is used in a project
- 104. A resource must be properly ____ before use
- 105. A disadvantage to overloading is that it can lead to _____ names
- 106. An advantage to overloading is that code is more _____ as types change
- 110. Tightly-coupled modules lose a lot of _____
- 112. Loosely-coupled modules allow us to easily _____ individual parts
- 114. A subclass derives from a _____
- 116. Dynamic polymorphism is determined at _____ _____
- 119. What the R in RAII stands for
- 123. To tell the difference between a std::string that does not have a value versus a std::string with an empty string, we could use a ____, but it is not a great solution.
- 128. The lambda function: [](char c) { std::cout << c; } uses an __ parameter