Term
|
Definition
| A variable whose content is a memory address (memory space) |
|
|
Term
| What is the value of a pointer variable? |
|
Definition
|
|
Term
|
Definition
| Syntax of a Pointer variable |
|
|
Term
| True or False: The character * can appear anywhere between type name and variable name in a pointer declaration. |
|
Definition
|
|
Term
In the statement: int* p, q; What is q? |
|
Definition
|
|
Term
| What two operators are used with pointers? |
|
Definition
| dereferencing (*) and address of (&) |
|
|
Term
|
Definition
|
|
Term
|
Definition
| dereferencing operator or indirection operator |
|
|
Term
| the address of operator (&) does what? |
|
Definition
| returns the address of its operand |
|
|
Term
In the following series of code: int x; int *p; p=&x; the value of p is equal to? |
|
Definition
|
|
Term
In the following series of code: int x = 25; p = &x; cout << *p << endl; What is printed? |
|
Definition
| 25 (the value stored in the memory space pointed to by p, which is the value of x) |
|
|
Term
In the following series of code: int x = 25; p = &x; *p = 55; Where else is 55 stored? |
|
Definition
|
|
Term
The Statement int *p; Allocates memory for what variable? |
|
Definition
|
|
Term
The Statement int *p; Allocates memory for what variable? |
|
Definition
|
|
Term
| True or False: Pointers cannot be declared to classes. |
|
Definition
|
|
Term
In the following series of code: struct studentType { char name[26]; double gpa int sID cahr grade };
studentType student; studentType *studentPtr;
studentPtr = &student (*studentPtr).gpa = 3.9; 3.9 is stored where? |
|
Definition
| in the gpa of the object student |
|
|
Term
| T or F: the dot operator has a higher precedence than the dereferencing operator |
|
Definition
|
|
Term
| In the expression (*studentPtr).gpa, why are there parentheses? |
|
Definition
| to stop the (.) dot operator from running before the (*) deferencing operator. |
|
|
Term
| T or F: Because studentPtr is a pointer variable of type studentType, *studentPtr, refers to a memory space of type studentType, which is a struct. |
|
Definition
|
|
Term
|
Definition
| member access operator arrow |
|
|
Term
|
Definition
| To eliminate the need for () and * when accessing class or struct components via a pointer. |
|
|
Term
| pointerVariableName->classMemberName |
|
Definition
| syntax for accessing a class(struct) member |
|
|
Term
| (*studentPtr).gpa=3.9 is equivalent to ? |
|
Definition
|
|
Term
| T or F: C++ automatically initializes variables |
|
Definition
|
|
Term
|
Definition
| pointer variable initialized using constant variable, 0 |
|
|
Term
| What is the only number that can be assigned to a pointer variable? |
|
Definition
|
|
Term
|
Definition
| variables created during program execution |
|
|
Term
| in C++ how are dynamic variables created? |
|
Definition
|
|
Term
| What two operators are used to create and destroy variables? |
|
Definition
|
|
Term
|
Definition
| when a dynamic variable is no longer needed |
|
|
Term
| What are the new operators two syntax forms? |
|
Definition
new dataType; new dataType[intExp]; |
|
|
Term
| What two ways is new used? |
|
Definition
| to allocate a single variable, and to allocate an array of variables |
|
|
Term
the statement: p = new int; does what two things? |
|
Definition
creates a variable, p stores the address of the newly allocated memory in p |
|
|
Term
The following statement: q = new char[16] does what? |
|
Definition
| creates an array of 16 items of type “char” and store the base address of the array in the pointer variable q |
|
|
Term
| The operator new does what? |
|
Definition
| allocates memory space of a specific type and returns the (starting) address of the allocated memory space. |
|
|
Term
| If the operator new is unable to allocate the required memory space what happens? |
|
Definition
| then it throws bad_alloc exception |
|
|
Term
| if the bad_alloc exception is not handled what happens? |
|
Definition
| it terminates the program with an error message. |
|
|
Term
|
Definition
| when unused memory space exists, but cannot be reallocated |
|
|
Term
| a large amount of memory leak may result in? |
|
Definition
| The program running out of memory and resulting in abnormal termination of the program |
|
|
Term
| To avoid memory leak, you should use what operator? |
|
Definition
|
|
Term
| What are the two syntax forms of delete? |
|
Definition
delete pointerVariable; delete [] pointerVariable; |
|
|
Term
| Why is it a good idea to set the value of all deleted pointers to ‘Null”? |
|
Definition
| because on some systems the pointer variable might still hold the address of the deallocated memory space. (dangling) |
|
|
Term
|
Definition
| value of one pointer variable can be assigned to another pointer of same type |
|
|
Term
|
Definition
| two pointer variables of same type can be compared for equality, etc. |
|
|
Term
| T or F: Integer values can be added and subtracted from a pointer variable |
|
Definition
|
|
Term
| T or F: Value of one pointer variable can be subtracted from another pointer variable |
|
Definition
|
|
Term
in the following series of code: int *p, *q; p = q; If changes are made to *p, what happens to *q |
|
Definition
| The same changes apply to *q |
|
|
Term
in the following statement: int *p, *q; The statement p==q; evaluates to what? |
|
Definition
| True, if p and q point to the same memory location |
|
|
Term
in the following statement: int *p, *q; The statement p!=q; evaluates to what? |
|
Definition
| true if p and q point to a different memory location. |
|
|
Term
In the following series of code: int *p; double *q char *chPtr studentType * stdPtr the statement p++; increments p by how much? Why? |
|
Definition
| 4 bytes because it is type int |
|
|
Term
In the following series of code: int *p; double *q char *chPtr studentType * stdPtr the statement q++; increments q by how much? Why? |
|
Definition
| 8 bytes because it is type double |
|
|
Term
In the following series of code: int *p; double *q char *chPtr studentType * stdPtr the statement chPtr++; increments chPtr by how much? Why? |
|
Definition
| 1 byte because it is type string |
|
|
Term
In the following series of code: int *p; double *q char *chPtr studentType * stdPtr the statement stdPtr++; increments stdPtr by how much? Why? |
|
Definition
| 40 bytes because it is points to a class |
|
|
Term
| When an integer is added to a pointer variable, the value of the pointer variable is incremented by how much? |
|
Definition
| by the integer times the size of the memory that the pointer is pointing to. |
|
|
Term
| When an integer is subtracted from a pointer variable, the value of the pointer variable is decremented by how much? |
|
Definition
| by the integer times the size of the memory to which the pointer is pointing. |
|
|
Term
| T or F: Pointer arithmetic is very safe. |
|
Definition
|
|
Term
| T or F: Using pointer arithmetic, the program can accidentally access the memory locations of other variables and change their content without warning, leaving the programmer trying to find out what went wrong. |
|
Definition
|
|
Term
| T or F: If a pointer variable tries to access either the memory spaces of other variables or an illegal memory space, some systems might terminate the program with an appropriate error message. |
|
Definition
|
|
Term
|
Definition
| An array created during the execution of a program |
|
|
Term
| When a dynamic array is created, what is stored in the pointer variable? |
|
Definition
|
|
Term
In the following statement: p = new int[10]; The statement *p = 25; stores 25 where? |
|
Definition
| in the first memory location |
|
|
Term
In the following statement: p = new int[10]; The statements: p++; *p = 25; stores 25 where? |
|
Definition
| in the second memory location |
|
|
Term
| You can access the components of the array with what operations? |
|
Definition
| the increment and decrement operations |
|
|
Term
| What can be used to access memory locations in dynamic arrays? |
|
Definition
|
|
Term
| in an array, can the base address be altered during program execution? |
|
Definition
|
|
Term
| t or F: An array name is a constant pointer and therefore cannot be altered. |
|
Definition
|
|
Term
| A pointer variable can be passed what two ways? |
|
Definition
| as a parameter either by value or by reference |
|
|
Term
| How do you make a pointer a reference parameter? |
|
Definition
| Place * before a & between the data type name and the identifier |
|
|
Term
| T or F: A function can return a value of type pointer |
|
Definition
|
|
Term
In the following statement: int *board[4]; what has been done? |
|
Definition
| This statement declares board to be an array of four pointers wherein each pointer is of type int.(board[0], board[1], board[2], and board[3] are pointers.) |
|
|
Term
In the following series of code: int *board[4]; for(int row = 0; row < 4; row++) board[row] = new int[6]; what has been done? |
|
Definition
| The statement makes a two dimensional array with 4 rows and 6 columns |
|
|
Term
In the following series of code: int *board[4]; for(int row = 0; row < 4; row++) board[row] = new int[6]; The array created is not a true dynamic two dimensional array. Why? |
|
Definition
| Because the number of rows is fixed |
|
|
Term
In the following statement: int **board; what has been done? |
|
Definition
| board is a pointer to a pointer, meaning board and *board are pointers. |
|
|
Term
In the following statement: int **board; to make board an array of 10 rows 15 columns, what has been done? |
|
Definition
board = new int* [10]; for (row = 0;row < 10; row++) board[row] = new int[15]; |
|
|
Term
In the following statement: int **board; what can be stored in board? |
|
Definition
| The address of an pointer or an array of pointers |
|
|
Term
In the following statement: int **board; what can be stored in *board? |
|
Definition
| the address of an int memory space or an array of int values. |
|
|
Term
| What is the more efficient way of declaring a dynamic two-dimensional array? |
|
Definition
|
|
Term
| In a shallow copy, what takes place? |
|
Definition
| 2 or more pointers of the same type point to the same memory |
|
|
Term
In the following series of code: int *first; int *second;
first = new int[10]; second = first; what has taken place? |
|
Definition
| a shallow copy of the array pointed to by first to the pointer second. |
|
|
Term
In the following series of code: int *first; int *second;
first = new int[10]; second = first; delete [] second; what has taken place? |
|
Definition
| a shallow copy of the array pointed to by first to the pointer second then both arrays are deleted. |
|
|
Term
In the following series of code: second = new int[10];
for (int j = 0; j < 10; j++) second[j] = first[j] what has taken place? |
|
Definition
| a deep copy, both pointers have their own data. |
|
|
Term
| How do we ensure that the dynamic memory of a pointer variable is destroyed after it itself is destroyed? |
|
Definition
|
|
Term
| In default member-wise initialization for each class, the compiler provides what? |
|
Definition
| a default copy constructor that copies each member of the original object into the corresponding member of the new object |
|
|
Term
In the fopllowing statement: pointerDataClass objectThree(objectOne); the object objectThree is being declared and is also being initialized by using the value of objectOne of the same type. What type of initialization is this? |
|
Definition
| default member-wise initialization. |
|
|
Term
| the object objectThree is being declared and is also being initialized by using the value of objectOne of the same type. What happens to the variables of objectOne |
|
Definition
| The values of the member variables of objectOne are copied into the corresponding member variables of objectThree. |
|
|
Term
| In static binding (compile-time binding), what occurs? |
|
Definition
| the necessary code to call a specific function is generated by the compiler. |
|
|
Term
| T or F: In run-time (dynamic) binding,the compiler generates the code to call a specific function. |
|
Definition
|
|
Term
| In run-time (dynamic) binding, what occurs? |
|
Definition
| the compiler generates enough information to enable the run-time system to generate the specific code for the appropriate function call. |
|
|
Term
| What is the purpose of a virtual function? |
|
Definition
| it acts as a placeholder that is meant to be redefined by derived classes. |
|
|
Term
| What do virtual functions prevent? |
|
Definition
the inclusion of the definitions of the referenced functions and the user from creating objects of the referenced class. |
|
|
Term
| A class with one or more pure virtual classes is called what? |
|
Definition
|
|
Term
| Overloading operators consists of what? |
|
Definition
| applying operators to classes, such as relational operators. |
|
|
Term
| returnType operator operatorSymbol(formal parameter list) |
|
Definition
| syntax for operator function |
|
|
Term
| What is an operator function? |
|
Definition
| The function that overloads an operator |
|
|
Term
| the name of the function to overload the operator >= is what? |
|
Definition
|
|
Term
| T or F: You can change the precedence and associativity of an operator |
|
Definition
| False. You can't change either |
|
|
Term
| T or F: Default parameters cannot be used with an overloaded operator |
|
Definition
|
|
Term
| T or F: You can change the number of parameters an operator takes |
|
Definition
|
|
Term
| T or F: You cannot create new operators. Only existing ones can be overloaded. |
|
Definition
|
|
Term
| What operators cannot be overloaded? |
|
Definition
|
|
Term
| T or F: Operators can be overloaded either for objects of the user-defined types or for a combo of user-defined and objects of built-in type. |
|
Definition
|
|
Term
| Every object of a class maintains a (hidden) pointer to itself called what? |
|
Definition
|
|
Term
| When is the this pointer to an object referenced by the member function? |
|
Definition
| When that object invokes a member function |
|
|
Term
| if x is an object, this refers to what property of x? |
|
Definition
|
|
Term
| if x is an object, *this refers to what property of x? |
|
Definition
|
|
Term
| What is a friend function? |
|
Definition
| nonmember function of the class, but has access to all the members (public or non-‐public) of the class |
|
|
Term
| How do you make a function a friend to a class? |
|
Definition
| friend precedes the function prototype |
|
|
Term
|
Definition
| the value of the variable is incremented by 1 after it is used in an expression |
|
|
Term
|
Definition
| the value of the variable is incremented by 1 before it is used in an expression |
|
|
Term
|
Definition
| syntax of prototype for post-increment operator |
|
|
Term
| className operator++(int); |
|
Definition
| syntax of prototype for pre-increment operator |
|
|
Term
|
Definition
| a single code body for a set of related functions |
|
|
Term
template (arrow)class Type(arrow) declaration |
|
Definition
|
|
Term
| T or F: a implementation file with (a) template(s) can be independently compiled |
|
Definition
|
|
Term
| where are two places that a templates contenes be placed? |
|
Definition
| directly in the client code, or directly in the header file. |
|
|