还拿上一遍中定义的GradeBook类来实现:
#include <iostream> using std::cout; using std::endl; #include <string> // program uses C++ standard string class. using std::string; #include <conio.h> // GradeBook class definition class GradeBook { public: // constructor initializes courseName with string supplited as argument. GradeBook(string name) { this->courseName=name; } // end GradeBook constructor // function to set the course name void setCourseName(string name) { this->courseName=name;// store the course name in the object. }// end function setCourseName // function to get the course name. string getCourseName() { return courseName;// return object's courseName }// end function getCourseName // display a welcome message to the GradeBook user void displayMessage() { // call getCourseName to get the courseName cout<<"Welcome to the grade book for "<<getCourseName()<<"|"<<endl; }// end function displayMessage private : string courseName; };// end class GradeBook // function main begins program execution int main() { // create two GradeBook objects. GradeBook gradeBook1("CS101 Introduction to C++ programing");; GradeBook gradeBook2("CS102 Data Structures in C++"); // display initial value of courseName for each GradeBook cout<<"gradeBook1 created for course:"<<endl; gradeBook1.displayMessage(); cout<<"gradeBook2 created for course:"<<endl; gradeBook2.displayMessage(); cout<<"Test the get function"<<endl; cout<<"gradeBook1 call getCourseName"<<gradeBook1.getCourseName()<<endl; cout<<"gradeBook2 call getCourseName"<<gradeBook2.getCourseName()<<endl; std::cin.get(); return 0; // indicates successful termination. }// end main
代码拆分结构:
定义出接口(头文件/GradeBook.h):
#include<string> using std::string; // GradeBook class definition class GradeBook { public: // constructor initializes courseName with string supplited as argument. GradeBook(string name); // function to set the course name void setCourseName(string name); // function to get the course name. string getCourseName(); // display a welcome message to the GradeBook user void displayMessage(); private : string courseName; };// end class GradeBook
定义出实现类(源文件/GradeBook.cpp):
#include <iostream> using std::cout; using std::endl; #include "GradeBook.h" // include definition of class GradeBook // constructor initializes courseName with string supplited as argument. GradeBook::GradeBook(string name) { this->courseName=name; } // end GradeBook constructor // function to set the course name void GradeBook::setCourseName(string name) { this->courseName=name;// store the course name in the object. }// end function setCourseName // function to get the course name. string GradeBook::getCourseName() { return this->courseName;// return object's courseName }// end function getCourseName // display a welcome message to the GradeBook user void GradeBook::displayMessage() { // call getCourseName to get the courseName cout<<"Welcome to the grade book for "<<getCourseName()<<"|"<<endl; }// end function displayMessage
在“源文件“下定义Main.cpp写main测试函数:
#include <iostream> using std::cout; using std::endl; #include <conio.h> #include "GradeBook.h" // include definition of class GradeBook // function main begins program execution int main() { // create two GradeBook objects. GradeBook gradeBook1("CS101 Introduction to C++ programing");; GradeBook gradeBook2("CS102 Data Structures in C++"); // display initial value of courseName for each GradeBook cout<<"gradeBook1 created for course:"<<endl; gradeBook1.displayMessage(); cout<<"gradeBook2 created for course:"<<endl; gradeBook2.displayMessage(); cout<<"Test the get function"<<endl; cout<<"gradeBook1 call getCourseName:"<<gradeBook1.getCourseName()<<endl; cout<<"gradeBook2 call getCourseName:"<<gradeBook2.getCourseName()<<endl; std::cin.get(); return 0; // indicates successful termination. }// end main
输出结果: