| A and AB course | AB course only | Comment |
classes |
| Read, use, and modify classes | Design and implement classes. | AP CS A students read class declarations, write client programs, add/modify member functions. |
| Read, use, and implement constructors, including initializer lists. | | Constructors should use initializer lists as opposed to assignments to data because sometimes initializers are required, so use them for uniformity. |
| Differentiate between public and private. | | No public data are used in classes. Since inheritance is not part of AP CS, there is no reason to use protected functions/data. |
| Read class definitions that include use of *this. | Use, modify, and implement class member functions that include *this. | |
| Implement overloaded functions; use overloaded operators. | Implement overloaded operators, including operator<< (but friend not used). | Students will NOT be tested on recognizing that functions differing in return type only are overloaded incorrectly. |
| Use and implement const member functions. | Recognize when to make a member function const. | |
| Use AP string class. | | The AP string class is a limited, safe subset of the standard string class. |
| Use templated AP vector and matrix classes. | Use and reimplement templated AP stack and queue classes. | |
| Design and implement templated classes and functions. | |
| Differentiate interface and implementation of class (.h and .cpp file). | | C++ permits the ideas to be treated separately. |
| Read, use, and implement structs, implementing constructors and initalizer lists in structs when appropriate. | Implement linked lists and trees using structs. | A struct is a class in which all data is public. Constructors facilitate dynamic creation of structs. |