Artefact | Convention | ||||||||||||
Function name | foo_bar_baz | ||||||||||||
Class name | foo_bar_baz | ||||||||||||
Object/variable name | fooBarBaz prefixFooBarBaz
|
||||||||||||
Enumeration name | foo_bar_baz_e | ||||||||||||
Enumerator name | FooBarBaz | ||||||||||||
Template parameter | FooBarBaz | ||||||||||||
Macro | FOO_BAR_BAZ |
#include <iostream> #include <string> #include <vector> enum grade_e { A, B, C, D, E, F }; class student { private: typedef std::vector<grade_e> grades; public: student(const std::string& aName) : iName(aName) {} public: const std::string& name() const { return iName; } void add_grade(grade_e aGrade) { iGrades.push_back(aGrade); } grade_e average_grade() const { if (iGrades.empty()) return F; int total = 0; for (grades::const_iterator i = iGrades.begin(); i != iGrades.end(); ++i) total += *i; return static_cast<grade_e>(total / iGrades.size()); } private: const std::string iName; grades iGrades; }; int main() { student s("Mr Flibble"); s.add_grade(A); s.add_grade(B); s.add_grade(C); s.add_grade(D); s.add_grade(E); std::cout << s.name() << "'s average grade is " << static_cast<char>(s.average_grade() + 'A') << std::endl; }