Final answer:
The use of templates can hurt code hiding due to the exposure of implementation details, the requirement for explicit instantiations, and the increase in code size.
Step-by-step explanation:
The use of templates can hurt code hiding for several reasons:
- Templates expose implementation details because they allow for the definition of generic data types and functions, which can reveal how the code is implemented.
- Templates require explicit instantiation to generate code for specific template arguments, which can lead to longer compilation times and bloated object code.
- Templates can increase code size because each instantiation of a template generates its own code, potentially leading to code duplication.
Therefore, options A, B, and C are correct.