Test Bank for Problem Solving with C++: The Object of Programming, 10/e Chapter 10 Defining Classes
TRUE/FALSE
1. A struct variable is declared differently from a predefined type such as an int. ANSWER: FALSE
2. Two different structure definitions may have the same member names. ANSWER: TRUE.
3. A structure can only be passed to a function as a call-by-value parameter ANSWER: FALSE
4. A function may return a structure. ANSWER: TRUE
5. Different class may not have member functions with the same name. ANSWER: FALSE
6. A class member function may be private. ANSWER: TRUE
7. Class data members are almost always public. ANSWER: FALSE
8. It is possible to have multiple private labels in a class definition. ANSWER: TRUE
9. The assignment operator may not be used with objects of a class. ANSWER: FALSE
10. All constructors for a class must be private. ANSWER: FALSE
11. A derived class is more specific than its parent, or base class. ANSWER: TRUE
Short Answer
1. The keyword ________ defines a structure type definition. ANSWER: struct
2. A structure definition ends with the closing brace and a _________. ANSWER: semicolon
3. A structure variable is a collection of smaller values called ____________ values ANSWER: member
4. When a structure contains another structure variable as one of its members, it is known as a ___________________. ANSWER: hierarchical structure
5. When several items (variables or variables and functions) are grouped together into a single package, that is known as ______________. ANSWER: (data) encapsulation
6. The double colon (::) is known as the __________ operator. ANSWER: scope resolution operator
7. Who can access private members in a class? ANSWER: only other members of the class
8. A member function that allows the user of the class to find out the value of a private data type is called a ___________________. ANSWER: accessor function.
9. A member function that allows the user of the class to change the value of a private data type is called a ____________________.
Test Bank for Problem Solving with C++: The Object of Programming, 10/e Chapter 10 Defining Classes
ANSWER: mutator function.
10. If you have a class with a member function called display(ostream& out), that will send the values in the class to the parameter stream, and you need to call that function from within another member function, how would you call it to print the data to the screen? ___________________________ ANSWER: display(cout);
11. What can a constructor return? _______________ ANSWER: nothing
12. The name of a constructor is _____________ ANSWER: the name of the class
13. The constructor of a class that does not have any parameters is called a __________ constructor. ANSWER: default
14. In the following class constructor definition, the part of the header starting with a single colon is called the ________________.
BankAccount::BankAccount(): balance(0), interest(0.0)
ANSWER: initialization section
15. A class in which modifications to the implementation appear to be invisible to the user of the class is known as _________________. ANSWER: an Abstract Data Type (ADT)
16. A member function that gets called automatically when an object of the class is declared is called a _______________. ANSWER: constructor
17. If class A is derived from class B, then B is a _______ of A. ANSWER: parent
18. C++11 allows you to directly set the member variables to initial values in the definition of the class. This feature is called __________________. ANSWER: member initializers
19. C++11 allows you to have a constructor call another constructor. This feature is called _________________________. ANSWER: constructor delegation
Multiple Choice
1. In a structure definition, the identifiers declared in the braces are called
a. classes b. structs
c. member names d. variables ANSWER: C
2. You specify an individual member of a struct by using
a. the assignment operator b. an ampersand c. an underscore d. The dot operator
Test Bank for Problem Solving with C++: The Object of Programming, 10/e Chapter 10 Defining Classes
ANSWER: D
3. To assign values to a structure variable, you use the
a. equals operator b. assignment operator c. extraction operator d. less than operator ANSWER: B
4. What is wrong with the following structure definition? struct MyStruct { int size; float weight; }
a. Nothing
b. Can not have mixed data types in a structure c. missing semicolon d. Braces are not needed. ANSWER: C
5. Given the following strucure definitions, what is the correct way to print the person's birth year? struct DateType { int day; int month; int year; }
struct PersonType { int age; float weight; DateType birthday; }
PersonType person;
a. cout << person.birthday.year; b. cout << year;
c. cout << birthday.year; d. cout << peson.year; ANSWER: A
6. Given the following strucure definition, what is the correct way to initialize a variable called today? struct DateType { int day; int month;
Test Bank for Problem Solving with C++: The Object of Programming, 10/e Chapter 10 Defining Classes
int year; }
a. DateType today(1,1,2000); b. DateType today = (1,1,2000); c. DateType today = {1,1,2000); d. DateType today = {1,1,2000,0); ANSWER: C
7. When defining a class, the class should be composed of the kind of values a variable of the class can contain, and
a. member functions for that class b. the keyword private c. other class definitions d. nothing else ANSWER: A
8. Which of the following is the correct function definition header for the getAge function which is a member of the Person class?
a. int getAge(); b. int getAge()
c. int Person:getAge() d. int Person::getAge() ANSWER: D
9. Given the following class definition and the following member function header, which is the correct way to output the private data? class Person {
public: void outputPerson(ostream& out); private:
int age;
float weight; int id;
};
void Person::outputPerson(ostream& out) { //what goes here? }
a. out << person.age << person.weight << person.id; b. out << person;
c. out << age << weight << id; d. outputPerson(person); ANSWER: C
10. Why do you want to usually make data members private in a class?
a. so that no one can use the class. b. ensure data integrity
Test Bank for Problem Solving with C++: The Object of Programming, 10/e Chapter 10 Defining Classes
c. provide data abstraction. d. provide information hiding. e. B and D f. B, C and D ANSWER: F
11. A member function of a class should be made private
a. always
b. only if it will never be used
c. if it will only be used by other members of the class d. never, it is illegal to make a member function private. ANSWER: C
12. A member function that allow the user of the class to change the value in a data member is known as
a. a mutator function b. a mutation
c. a manipulator function d. an accessor function ANSWER: A
13. A Member function that allows the user of the class to see the value in a data member is known as
a. a mutator function b. a mutation
c. a manipulator function d. an accessor function ANSWER: D
14. If you design a class with private data members, and do not provide mutators and accessors, then
a. The private data members can still be accessed from outside the class by using the & operator
b. The data can not be changed or viewed by anyone. c. None of the above d. A and B ANSWER: B
15. A class member function that automatically initializes the data members of a class is called
a. the init function b. an operator c. a constructor d. a cast ANSWER: C
16. If you have a class named myPersonClass, which of the following correctly declare a constructor in the class definition?
a. myPersonClass::myPersonClass(); b. myPersonClass(); c. init(); d. cast();
用C++解决问题第十版Chapter 10



