COSC 052 FINAL final
True
A class and its members can be described graphically using Unified Modeling Language (UML) notation.
False
A class can have more than one destructor.
When an object is being created and initialized with another object of the same class An object is passed by value as an argument to a function A function returns an instance of a class, by value
A copy constructor is automatically called in the following situations:
A class can have more than one destructor.
False
Exceptions signal errors or unexpected events that occur when code is compiled.A thrown exception could go uncaught if _______________________________________.
False
If a circular linked list is empty, then its tail pointer points to itself.
False
If a stack is implemented as a linked list, it is still consdiered to be a static stack.
False
If a stack is implemented as a linked list, it is still considered to be a static stack.
False
Physical queues are routine in day-to-day life, but queue data structures are uncommon in compute operating systems.
False
The advantage of the linear search is its efficiency, however it is difficult to understand and complex to implement.
False
The enqueue operation returns true if the value specified is stored in the queue.
False
In a circular linked list we maintain a pointer to keep tract of the ________________ Node in the list.
Last
Structures
Lets set of variables be combined in a single unit struct payRoll { int empNumber; string name; double hours, payRate; }; payRoll deptHead, foreman, associate; deptHead.empNumber = 475; foreman.empNumber = 897;
A class and its members can be described graphically using Unified Modeling Language (UML) notation.
True
A derived class can redefine a public member function of the base class.
True
A pointer variable is a variable that stores the address of a memory location.
True
If I implement a stack data structure using a dynamically allocated array to store the elements on the stack, it is still considered a static stack.
True
If a circular linked list contains only one Node, then that Node's next pointer points to itself
True
catch
handles exceptions thrown in a preceding try block. It takes a parameter that matches the type of exception thrown. exception handler.
By default, all members of a class are public.
False
In C++, &p, p, and *p all have the same meaning.
False
Arithmetic expressions written in Polish Notation are using ___________ notation
Prefix
::
Scope resolution operator
The following list of numbers is to be sorted using Selection Sort. 36, 55, 17, 35, 63, 85, 12, 48, 3, 66
The amount of value swaps that are required to completely sort the given list of numbers is -----> 9
Any sort algorithm can be modified to sort in either ascending or descending order.
True
Iterators are objects that behave like pointers.
True
Linear and binary searches can also be used to search for a specific entry in an array of objects or structures. Correct!
True
50 50 20
What will the following program display on the screen? #include <iostream> using namespace std; class Tank { private: int gallons; public: Tank() { gallons = 50; } Tank( int gal ) { gallons = gal; } int getGallons() { return gallons; } }; int main(int argc, const char * argv[]) { Tank storage1, storage2, storage3(20); cout << storage1.getGallons() << endl; cout << storage2.getGallons() << endl; cout << storage3.getGallons() << endl; return 0; }
How are public members of a class ojbect accessed
With the dot operator
The try block is immediately followed by one or more __________ blocks.
catch
Composition = _____ relationship
has-a enclosing class has an instance of the enclosed class
pointer variable
holds addresses of memory locations ex: int *ptr; ptr is a pointer to int. *ptr is variable that ptr points to
Every time the binary search algorithm makes a comparison and fails to find the desired item, it eliminates _______________________ of the remaining portion of the array that must be searched.
one half
a ___ sign in front of a member name on a UML diagram indicates that this member is a public member.
+
A ____ sign in front of a member name on a UML diagram indicates that this member is a private member.
-
A copy constructor is automatically called in the following situations:
- When an object is being created and initialized with another object of the same class - An object is passed by value as an argument to a function - A function returns an instance of a class, by value
A thrown exception could go uncaught if _______________________________________.
- the program contains no catch blocks with an exception parameter of the correct data type. - it is thrown from outside a try block.
a copy constructor is automatically called when:
- when an object is being created and initialized with another object of the same class - an object is passed by value as an argument to a function - a function returns an instance of a class, by value
A C++ implementation file has the extension ____.
.cpp
Class composition
Class composition: A form of aggregation where the enclosing class controls the lifetime of the objects of the enclosed class
The binary search is a ______________ algorithm that is much more ____________ than the linear search.
Clever , Efficient.
False
Constructors are called like any other function.
A stack can be useful in a hand held calculator, but in computer software, stacks are not very useful.
False
All operators can be overloaded as member functions of the class.
False
Constructors are called like any other function. You Answered
False
Exceptions are used to signal errors or unexpected events that occur at compile time.
False
The advantage of linear search is its efficiency, however it is difficult to understand and complex to implement.
False
The process of propagating uncaught exceptions from a function to its caller is called propagating the stack of function calls.
False
There is no way to definitively indicate the end of a linked list.
False
When a node is inserted into a linked list, all of the elements after the insertion point must be moved one position toward the end of the list.
False
When the linear search algorithm is used to search for an item that is not present in an array, it must make a comparison with slightly less than half of the elements in the array.
False
True
Given the declaration int *p; The statement p = new int[50]; dynamically allocates an array of 50 elements of type int and p contains the address of the first element in the array.
True
If p is a pointer variable, the statement p = p + 1; is valid in C++.
memberwise
If the programmer does not specify a copy constructor for a class, then the compiler calls a default copy constructor when necessary; resulting in a ________ assignment.
False
In C++, &p, p, and *p all have the same meaning.
&
In C++, ____ is called the address operator.
copy constructor
In numberArray.h class numberArray { . . . public: numberArray(int size, double value); }; In numberArray.cpp
#ifndef FILENAME_H #define FILENAME_H #endif FILENAME_H Stands for what? Purpose?
Include guard - prevents header file from accidentaly being included more than once "if not defined" - checks for the existence of a constant named "FILENAME_H". if it hasnt been defined yet, its defined, and it includes the rest of the header file.
Arithmetic expressions that we typically write use ________________ notation
Infix.
The _____________ search is a very simple algorithm. Sometimes called the __________ search, it compares each element with the value being searched for, and stops when either the value is found or the end of the array is encountered.
Linear , Sequential
The ___________ search algorithm is adequate for small arrays but not large arrays.
Linear.
The ____________ search algorithm steps sequentially through an array, comparing each item with the search value.
Linear.
Consider the linked list below. circular linked list1 Assume that the basic circular linked list operations have been correctly implemented for this class. Further assume that the identifier for this linked list object is myList. What output will be displayed on screen after this series of operations on the list?
Nothing. These operations are nonsensical.
Bubble sort places _________ of the elements to be sorted in the correct place after each complete iteration of its outer loop.
One
The selection sort places ______________ of the elements to be sorted in the correct place after each complete iteration of its outer loop.
One
Every time the binary search algorithm makes a comparison and fails to find the desired item, it eliminates ___________ of the remaining portion of the array that must be searched.
One half.
Protected members of a base class: how can the outside world and derived members access them?
Outside world: through public members Derived class: directly
True
The preprocessor directive #ifndef is used to prevent multiple inclusions of a header file in a program.
A stack is a data structure that stores and retrieves items in a last-in-first-out (LIFO) manner.
True
A try block must be followed by one or more catch blocks.
True
An exception can propagate backwards along the chain of functions calls until the exception is thrown out of a try block that has a catch block that can handle it.
True
Dynamically allocated data structures may be linked together in memory to form a chain.
True
Given the declaration int *p; The statement p = new int[50]; dynamically allocates an array of 50 elements of type int and p contains the address of the first element in the array. Correct!
True
If i implement a stack data structure using a dynamically allocated array to store the elements on the stack, it is still considered a static stack
True
If p is a pointer variable, the statement p = p + 1; is valid in C++.
True
In C++, an array name is a constant pointer.
True
In many cases, a program will need to test for several different types of errors and signal which one has occured.
True
Sorting and searching algorithms can be applied to arrays, but not to standard template library vectors
True
The preprocessor directive #ifndef is used to prevent multiple inclusions of a header file in a program.
True
Using operator overloading, it is possible to cange an operator's entire meaning.
True
When a throw statement is executed, control is passed to another part of the program known as an exception handler.
True
If I define a class that has a data member that is a pointer, what other members should I also include in the class?
copy constructor, overloaded assignment operator, destructor
Example of a member function
cout << city.length() << endl; //length is a member function
Comparing addresses vs comparing values
if(ptr1 < ptr2) //compares addresses if(*ptr1 < *ptr2) //compares values
*
indirection operator
Arithmetic expressions that we typically write use _____________________ notation.
infix
A derived class can redefine a public member function of the base class.
true
There are ________ possible ways for a thrown exception to go uncaught.
two
Destructor
~Demo(); Demo::~Demo() { }
Example of a class
#include <string> //header file string city, state; //city and states are objects
In C++, ____ is called the address operator.
&
Pointer precendence
*numbers + 1 //adds 1 to contents of 1st array element. arithmetic *(numbers + 1) //adds 1 to address in numbers then deferences. moving to next spot
A ____ sign in front of a member name on a UML diagram indicates that this member is a public member.
+
Consider the program below. What is output when this program executes? #include <iostream> #include <vector> #include <exception> #include <stdexcept> using namespace std; int main() { try { vector<int> a; a.push_back(132); a.push_back(126); a.push_back(49); a.push_back(13); a.push_back(20); int i = 40; if ( i > 4 ) throw "ERROR: index is out of range!"; cout << "a[i] = " << a.at(i) << endl; } catch(out_of_range) { cout << "caught out_of_range exception in function main...\n"; } catch(...) { cout << "unknown exception caught in function main...\n"; } return 0; }
unknown exception caught in function main...
exceptions are
used to signal errors or unexpected events that occur WHILE A PROGRAM IS RUNNING (NOT AT COMPILE TIME)
exception
value or an object that indicates that an error has occurred
function implementation function definitions
void Cicle::setRadius (double r) { radius = r; } double Circle:: getArea() { return 3.14*pow (radius, 2); }
What to put in class declaration prototypes
void setRadius(double); double getArea(); //set has parameters, get does not
Match the text with the correct label on the graph. Big O Graph Correct!
x-axis input size y-axis run size Box A c g(n) Box B f(n) Box C n-zero
Consider the linked list below. double linked list1 Assume that the typiclal linked list operations have been correctly implemented for this class. Further assume that the identifier for this linked list object is myList. After the operations below execute how many dangling pointers will exist? Draw the "state" of the linked list after the following operations have been executed. Identify any dangling pointers and/or memory leaks. (For this question do not try to draw an answer in Canvas. Draw your answer on paper and compare it to the solution attached to Homework 7.) Node *current = tail->previous->previous; delete current->next; tail->previous = NULL;
1
The drawing below represents the "state" of a linked list of Widget objects. All objects on the list are instances of the Widget class. The class has a member function getWeight() that returns the value of the object's weight data member. The class also has a member function getNext() that returns the address stored in the object's next data member. The next data member is a pointer to a Widget object. The number listed within the drawing of each Widget is the value of its weight data member. After the code below executes there will be _________ Widget objects deleted, _________ dangling pointers, and _________ "lost objects" that represent memory leaks.
1, 2, 2. Object with weight 8.0 is deleted, the next pointer of object with weight 7.6 is dangling and the current pointer is dangling; objects with weight 3.2 and 2.6 are "lost" and represent memory leaks.
What is the output of the following code? int *p; int x; x = 12; p = &x; cout << x << ", "; *p = 81; cout << *p << endl;
12,81
Consider the linked list below. circular linked list1 Assume that the basic circular linked list operations have been correctly implemented for this class. Further assume that the identifier for this linked list object is myList. What output will be displayed on screen after this series of operations on the list? int total = 0; while (total < 200) { total += myList.front(); myList.advance(); } cout << total << endl;
227
The following list of numbers is to be sorted using Selection Sort. What is the order of these numbers after one complete iteration of the outer loop using the Selection Sort algorithm. 36, 55, 17, 35, 63, 85, 12, 48, 3, 66
3 55 17 35 63 85 12 48 36 66
The following list of numbers is to be sorted using Bubble Sort. What is the order of these numbers after one complete iteration of the outer loop using the Bubble Sort algorithm. 36, 55, 17, 35, 63, 85, 12, 48, 3, 66
36, 17, 35, 55, 63, 12, 48, 3, 66, 85
Consider the linked list below. double linked list1 Assume that the typiclal linked list operations have been correctly implemented for this class. Further assume that the identifier for this linked list object is myList. After the operations below execute how many dangling pointers will exist? Draw the "state" of the linked list after the following operations have been executed. Identify any dangling pointers and/or memory leaks. (For this question do not try to draw an answer in Canvas. Draw your answer on paper and compare it to the solution posted attached to Homework 7.) head = head->next->next->previous; Node *current = tail; delete current->next; while (current->previous != NULL) { if (current->info < 80) { current = current->previous; delete current->next; } else { current = current->previous; } }
4
What is the output of the following code? int *p; int x; x = 76; p = &x; *p = 43; cout << x << ", " << *p << endl;
43, 43
What is the value of x after the following statements execute? int x = 25; int *p; p = &x; *p = 46;
46
The drawing below represents the "state" of a linked list of Widget objects. All objects on the list are instances of the Widget class. The class has a member function getWeight() that returns the value of the object's weight data member. The class also has a member function getNext() that returns the address stored in the object's next data member. The next data member is a pointer to a Widget object. The number listed within the drawing of each Widget is the value of its weight data member. After the code below executes there will be _________ Widget objects deleted, _________ dangling pointers, and _________ "lost objects" that represent memory leaks.
5, 2, 0. All objects are deleted, there are no memory leaks, but there are two dangling pointers. The widgetList pointer was never moved, so it is still pointing to the address of the first object in the list, but that memory has been deallocated and is no longer valid. The current pointer moved past the end of the list, so it is pointing to NULL and is valid. The pointer byebye stopped on the last object which was also deallocated so byebye is a dangling pointer.
What will the following program display on the screen?
50 50 20
What will the following program display on the screen? #include <iostream> using namespace std; class Tank { private: int gallons; public: Tank() { gallons = 50; } Tank( int gal ) { gallons = gal; } int getGallons() { return gallons; } }; int main(int argc, const char * argv[]) { Tank storage1, storage2, storage3(20); cout << storage1.getGallons() << endl; cout << storage2.getGallons() << endl; cout << storage3.getGallons() << endl; return 0; }
50 50 20
Consider the linked list below. circular linked list1 Assume that the basic circular linked list operations have been correctly implemented for this class. Further assume that the identifier for this linked list object is myList. What output will be displayed on screen after this series of operations on the list? myList.advance(); myList.remove(); myList.remove(); myList.advance(); cout << myList.front() << " " << myList.back() << endl;
76 80
Class aggregation
: An object of one class owns an object of another class
.cpp
A C++ implementation file has the extension ____.
-
A ____ sign in front of a member name on a UML diagram indicates that this member is a private member.
+
A ____ sign in front of a member name on a UML diagram indicates that this member is a public member.
Class composition
A form of aggregation where the enclosing class controls the lifetime of the objects of the enclosed class (has-a relationship between classes)
True
A pointer variable is a variable that stores the address of a memory location.
False
A pointer variable is declared using an ampersand (&) character.
same
A programmer-defined copy constructor must have a single parameter that is a reference to the _________ class.
True
A struct can be passed as a parameter to a function by value or by reference.
False
A struct is a homogeneous data structure with all components of the same type.
false
All operators can be overloaded as member functions of the class.
Class aggregation
An object of one class owns an object of another class
If an array is sorted in ________ order, the values are sorted from lowest to highest.
Ascending
The ____________ search algorithm repeatedly divides the portion of an array being searched in half.
Binary
The ___________ binary search algorithm requires that the array's contents be sorted.
Binary.
Assume a class named Bird exists. Write the header for a member function that overloads the = operator for that class.
Bird Bird::operator=(const Bird &rhsobj);
False
By default, all members of a class are public.
Using a constructor like a struct
Date (int day = 0, int month = 0, int year = 0) { day = 0; month = 00; year = 0000; }
Enumerated data types
Date type created by programmer, contains a set of named constant integers ( Ex: enum Fruit {apple, grape, orange}; )
If an array is sorted in ___________ order, the values are stored from highest to lowest.
Descending
____ is the ability to combine data, and operations on that data, in a single unit.
Encapsulation
A derived class can directly access any member of the base class.
False
A derived class cannot directly access public members of a base class.
False
A linked list consists of a series of self-referential objects. Each object has a pointer to the next object in the list. This is the only possible design of a linked list.
False
A pointer variable is declared using an ampersand (&) character.
False
A queue is a data structure that stores and retrieves items in a last-in-first-out (LIFO) manner
False
A queue is a data structure that stores and retrieves items in a last-in-first-out (LIFO) manner.
False
Difference between overrriding and overloading
Overriding = the redef of a member function by a derived class when the base class already has a member function with the same name and parameter list Overloading = the redef of functions within the same class with the same name and different parameter lists
From the list below, select the three characteristics of Object Oriented Design (OOD) / Object Oriented Programming (OOP).
Polymorphism, Inheritance, Encapsulation
What are the three characteristics of Object Oriented Design (OOD) / Object Oriented Programming (OOP).
Polymorphism, inheritance, encapsulation
Arithmetic expressions written in Reverse Polish Notation are using _________ notation.
Postfix
Constructor with one parameter example
Sale(double rate) {taxRate = rate; }
Abstract Data Type
Specifies the value the data type can hold the operations that can be done on them without the details of how the data type is implemented
A stack is a data structure that stores and retrieves items in a last-in-first-out (LIFO) manner
True.
Linear and binary searches can also be used to search for a specific entry in an array of objects or structures.
True.
UML stands for
Unified Modeling Language
Member initialization lists
Used in constructors for classes involved in aggregation, Allows constructor for enclosing class to pass arguments to the constructor of the enclosed class
true
Using operator overloading, it is possible to change an operator's entire meaning.
True
Usually class declarations are stored in their own header files (specification files) and member function definitions are stored in their own .cpp files (implementation files).
Inheritance order of execution
When an object is created in the derived class, the base class constructor is executed first, then the derived class constructor is executed. When an abject is destroyed in the derived class, the derived class destructor is executed first, followed by the base class destructor
Encapsulation
____ is the ability to combine data, and operations on that data, in a single unit.
Dangling Pointer
a pointer contains the address of memory that has been freed by a call to delete (solution is to set ptr to NULL after deletion)
Assume that an iterator class having identifier LL_iterator exists. The iterator class implements an overloaded dereferencing operator: LL_iterator::operator*(). The return value for this operator is ________________________.
a reference to the info data member of the node to which the iterator points
Inheritance
a way of creating a new class by starting with an existing class and adding new members (is-a relationship between classes)
Consider the program below. What is output when this program executes? #include <iostream> #include <vector> #include <exception> #include <stdexcept> using namespace std; int main() { try { vector<int> a; a.push_back(132); a.push_back(126); a.push_back(49); a.push_back(13); a.push_back(20); cout << "a[3] = " << a.at(3) << endl; } catch(out_of_range) { cout << "caught out_of_range exception in function main...\n"; } catch(...) { cout << "unknown exception caught in function main...\n"; } return 0; }
a[3] = 13
Consider the program below. What is output when this program executes? #include <iostream> #include <vector> #include <exception> #include <stdexcept> using namespace std; int main() { try { vector<int> a; a.push_back(132); a.push_back(126); a.push_back(49); a.push_back(13); a.push_back(20); int i = 4; if ( i > 4 ) throw "ERROR: index is out of range!"; cout << "a[i] = " << a.at(i) << endl; } catch(out_of_range) { cout << "caught out_of_range exception in function main...\n"; } catch(...) { cout << "unknown exception caught in function main...\n"; } return 0; }
a[i] = 20
The basic linked list operations are:
adding an element to a list removing an element from the list traversing the list destroying the list
The basic linked list operations are:
adding an element to the list, removing an element from the list, traversing the list, destroying the list
Pointer
address of a memory location
Use dynamic memory allocation for arrays w/ pointers (ptr = arrayPtr and double at 25)
arrayPtr = new double[25];
Existing classes, from which you create new classes, are called ____ classes.
base
A linked list class that uses iterators provides the following member functions specifically for that purpose.
begin() end()
The _____________________ search algorithm repeatedly divides the portion of an array being searched in half.
binary
The ________________________ search algorithm requires that the array's contents be sorted.
binary
Constructor
called when class object is created. name is the same as name of class, no return type, no parameters if default Class Demo { public: Demo() //contructor Demo::Demo() }
Consider the program below. What is output when this program executes? #include <iostream> #include <vector> #include <exception> #include <stdexcept> using namespace std; int main() { try { vector<int> a; a.push_back(132); a.push_back(126); a.push_back(49); a.push_back(13); a.push_back(20); cout << "a[3] = " << a.at(30) << endl; } catch(out_of_range) { cout << "caught out_of_range exception in function main...\n"; } catch(...) { cout << "unknown exception caught in function main...\n"; } return 0; } Correct!
caught out_of_range exception in function main...
The binary search is a(n) ____________________ algorithm that is much more ____________________ than the linear search.
clever/efficient
when a throw statement is executed..
control is passed to another part of the program known as an exception handler
Correct function implementation
double getArea() //wrong Circle::double getArea() // wrong double Circle::getArea() //right
The basic operations of a circular linked list are:
empty, add, front, back, remove, advance
______is the ability to combine data, and operations on that data, in a single unit.
encapsulation
a piece of code is said to be polymorphic if
executing the code with different types of data produces different behavior
(T/F) all operators can be overloaded as member functions of the class
false
(T/F) by default all members of a class are public
false
(T/F) constructors are called like any other function
false
A derived class can directly access any member of the base class.
false
A derived class cannot directly access public members of a base class.
false
When a node is inserted into a linked list, all of the elements after the insertion point must be moved one position toward the end of the list.
false
try
followed by a block { }, is used to invoke code that throws an exception (equiv to an if statement)
throw
followed by an argument, is used to signal an exception (this must be within try block)
program to enter numbers and display
int main( ) { const int SIZE = 5; int numbers[size]; cout << "Enter " << size << " numbers: "; for (int count = 0; count < SIZE; count ++) cin >> *(numbers + count); cout << "Here are teh numbers you entered:\n"; for(int count = 0; count < SIZE; count++) cout << *(numbers + count) << " "; cout << endl; return 0; }
example of a pointer variable
int main() { int x = 25; int *ptr; ptr = &x; cout << x << endl; cout << ptf << endl; } output: 25 [address of x]
Array name as pointer
int main() { short numbers[ ] = {10, 20, 30}; cout << *numbers << endl; return 0; } output: 10 //first number of array
Initializing pointers
int myvalue; int *pint = myValue; or int ages[20]; int *pint = ages
Pointer property
int x = 25 int *ptr; ptr = &x cout << ptr << " " << x; output: [address of x] 25
Inheritance = ____ relationship
is-a
Inheritance is an example of a(n) ____ relationship.
is-a
After one pass of the bubble sort, the ___________ value is in its proper order; after one pass of the selection sort, the __________ value is in its proper order.
last --> first.
throw point
line containing throw statement
The ___________________ search algorithm steps sequentially through an array, comparing each item with the search value.
linear
The _____________________ search algorithm is adequate for small arrays but not large arrays.
linear
The _____________________ search is a very simple algorithm. Sometimes called the ________________________ search, it compares each element with the value being searched for, and stops when either the value is found or the end of the array is encountered.
linear/sequential
A data structure that points to an object of the same type as itself is known as a(n) ____________________ data structure.
linked
If the programmer does not specify a copy constructor for a class, then the compiler calls a default copy constructor when necessary; resulting in a ________ assignment.
memberwise
If I write code that dynamically allocates memory with the operator new, I must remember to deallocate that memory using the operator delete. Failing to do so results in a(n) ___________________ .
memory leak
Consider the linked list below. double linked list1 This linked list is an instance of the doubly linked list class having the class name DLL. This is a non-template class. Nodes on the linked list have an info data member of type int. Write a member function for class DLL that will output the contents of each Node's info data in reverse order. Use iteration (not recursion). (For this question do not try to write the code in Canvas, write your code by hand or type into an IDE, then compare your answer to the solution attached to Homework 7.) How many lines of code does your function require?
more than 1
Objects sent to default constructor
no parenthesis ex: Sale cashier; // not Sale cashier();
Memory leak
occurs if no-longer-needed dynamic memory is not freed
Assume that a linked list class having identifier LL exists. The class provides a method end() returns an iterator object. The iterator object returned by end() points to what position within the linked list?
one position past the last node on the linked list
Assume a class named Length exists. Write the header for a friend function that overloads the stream insertion << operator for that class.
ostream& operator<<(ostream &os, const Length &rhsobj);
Arithmetic expressions written in Reverse Polish Notation are using _____________ notation.
postfix
Assume that an iterator class having identifier LL_iterator exists. The iterator class implements the following overloaded operator: LL_iterator::operator++(). This is the _________________________ operator.
pre-increment
Arithmetic expressions written in Polish Notation are using _____________ notation.
prefix
the preprocessor directive #ifndef is used to
prevent multiple inclusions of a header file in a program
Class
programmer identified data type that describes what objects of the class will look like when they're created
Access Specifiers
public and private member variables usually private, member functions usually public
Consider the following function stub: LL_iterator LL::end() { } Select the best option from the given choices for this method's implementation code.
return LL_iterator(NULL);
Consider the following function stub: LL_iterator LL::begin() { } Select the best option from the given choices for this method's implementation code.
return LL_iterator(head);
Copy of Consider the following function stub: int& LL_iterator::operator*() const { } Select the best option from the given choices for this method's implementation code.
return current->info;
Default Constructor Example
sale() { taxRate = 0.0 }
A programmer-defined copy constructor must have a single parameter that is a reference to the _________ class.
same
A data structure that points to an object of the same type as itself is known as a(n) ____________________ data structure.
self-referential
Name array and use as pointer
short numbers[ ] = {10, 20} cout << *number << endl; output: 10
exception handler
special code for handling the exception. catch block.
Initializing a structure
struct Date {int day, month, year; }; Date birthday = {23, 8, 1983};
Assume that a linked list class having identifier LL exists. The class provides a method begin() returns an iterator object. The iterator object returned by begin() points to what position within the linked list?
the first node on the linked list
Two linked list iterator objects are equal if _____________________________________________________.
they both store the same memory address in their current data member
The process of beginning at the head of a list and going through the entire list while doing some processing at each node is called ______________ the list.
traversing
(T/f) If p is a pointer variable, the statement p = p + 1; is valid in C++.
true