Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

What is the primary purpose of template functions? A. To allow a single function

ID: 3558765 • Letter: W

Question

  1. What is the primary purpose of template functions?
    • A. To allow a single function to be used with varying types of arguments
    • B. To hide the name of the function from the linker (preventing duplicate symbols)
    • C. To implement container classes
    • D. To permit the use of the debugger without the -gstabs flag
  2. Consider this prototype for a template function:
         template <class Item>     void foo(Item x); 
    Which is the right way to call the foo function with an integer argument i?
    • A. foo( i );
    • B. foo<int>( i );
    • C. foo<Item>( i );
    • D. foo(<int> i );
    • E. foo(<Item> i );
  3. Consider the following definition:
         template <class Item>     Item maximal (Item a, Item b)     {         if (a > b)             return a;         else             return b;     } 
    What restrictions are placed on the Item data type for a program that uses the maximal function?
    • A. The Item data type must be either int, double, or float.
    • B. The Item data type must be one of the built-in C++ data types.
    • C. The Item data type must have a copy constructor and a > operator defined.
    • D. None of the above restrictions apply.
  4. When should a function be implemented as a template function?
    • A. When the data types of the parameters all have copy constructors.
    • B. When the function depends on an underlying data type.
    • C. When the function is relatively short (usually just one line).
    • D. When the function only takes one argument.
  5. What is a major difference between the header file for a toolkit of template functions and the header file for a toolkit of ordinary functions?
    • A. The ordinary function toolkit header file must have a #include for the implementation file, but the template version does not have this #include.
    • B. The template function toolkit header file must have a #include for the implementation file, but the ordinary version does not have this #include.
    • C. The ordinary function toolkit header file must have a macro guard, but the template version does not have this macro guard.
    • D. The template function toolkit header file must have a macro guard, but the ordinary version does not have this macro guard.
  6. Why is it a bad idea to have a size_t parameter for a template function?
    • A. Because it would require stdlib.h to be separately compiled.
    • B. Because most compilers would not permit the actual argument to be 42 (an int).
    • C. Because size_t values cannot be negative.
    • D. Because the compiler can tell the size of something without having a size_t parameter.
    Multiple Choice
    Section 6.2
    Template Classes
  7. Our original bag classes in Chapters 3-5 used a typedef to define the Item data type. What problem is solved by using a template bag class instead of these original typedef versions?
    • A. None of the typedef versions permit a program to use a bag of Strings.
    • B. With all of the typedef versions, it is difficult for a program to use several bags with different Item types.
    • C. With all of the typedef versions, the CAPACITY of the bag is fixed during compilation. A program cannot dynamically allocate a bag.
    • D. With all of the typedef versions, the Item data type must be one of the built-in C++ data types (char, int, etc.)
  8. Suppose bag is a template class, what is the syntax for declaring a bag b of integers?
    • A. bag b;
    • B. bag<int> b;
    • C. bag of int b;
    • D. int bag b;
  9. Why is it recommended to first implement a class using a typedef for the Item type, before implementing the template version?
    • A. It is easier to debug the typedef version.
    • B. The typedef version requires less disk space during the design stage.
    • C. The typedef version requires less memory during execution.
    • D. The template version will not compile unless you implement the typedef version first.
  10. When you write a template class, where does the template prefix occur?
    • A. Before the template class definition
    • B. Before each member function implementation.
    • C. Before any other template functions that manipulate the template class.
    • D. TWO of the above answers are correct.
    • E. All of the (A), (B), and (C) are correct.
    Multiple Choice
    Sections 6.3 and 6.4
    STL Classes, Iterators,
    and the Node Template Class
  11. Suppose that a program wants to use both a bag of doubles and a bag of strings. Which version of the bag could you use?
    • A. You can use the array version of the non-template bag
    • B. You can use the linked list version of the non-template bag
    • C. You can use the array version of the template bag
    • D. Two of the above answers are right
    • E. Answers A, B, and C are all right
  12. What technique is used to provide the capability to step through items of a container class?
    • A. A copy constructor.
    • B. A default constructor.
    • C. A destructor.
    • D. An iterator.
    • E. An overloaded assignment operator.
  13. Why does the new node template class require two versions of the data member function, but the node in Chapter 5 needed only one?
    • A. The Chapter 5 node was singly linked, but the node template class is doubly linked.
    • B. The Chapter 5 data function returned a copy of the data, but the data function for the node template class returns a reference to the data.
    • C. The Chapter 5 node had no iterator.
    • D. All of the above.
Multiple Choice
Section 6.2
Template Classes

Explanation / Answer

1) A

The use of template functions is to avoid duplication of codes which means that a single piece of code is compatible with various types of data.

2) B

By syntax.

3) C

If > is not defined for the particular data type, comparison is not possible.

4) B

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote