英文C++ How To Program中文翻的文謅謅名為"程式設計的藝術"作為傳奇"初階"書籍CS101曾經的御用教材開頭不廢話直接介紹物件導向當然在13章還會有更深入的探討,C++的類別有三個關鍵字public, protect與private,public代表公開的其中會定義一些可以在類別外部或子類別自由使用的方法或資料成員,在C++中類別的方法英文還是function,但為了方便區別,中文翻成跟JAVA一樣的Method(方法),類別中第一個定義的通常是建構式Contractor負責初始化"物件",與類別同名不須定義返回值是其重要特徵,範例中的建構式有一個參數name並呼叫公開成員方法setCourseName,setCourseName受到建構式呼叫取得name參數會將private底下的私有資料成員courseName設為name。
由於courseName在private底下只有該class的Method才能讀取這就實現封裝,本篇範例寫了一大票程式碼就只是為了實現一個功能print(book_name)。
// Fig. 3.7: fig03_07.cpp
#include <iostream>
using std::cout;
using std::endl;
using std::string;
// GradeBook class definition
class GradeBook
{
public:
// constructor initializes courseName with string supplied as argument
GradeBook( string name )
{
setCourseName( name ); // call set function to initialize courseName
} // end GradeBook constructor
// function to set the course name
void setCourseName( string name )
{
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\n" << getCourseName()
<< "!" << endl;
} // end function displayMessage
private:
string courseName; // course name for this GradeBook
}; // end class GradeBook
// function main begins program execution
int main()
{
// create two GradeBook objects
GradeBook gradeBook1( "CS101 Introduction to C++ Programming" );
GradeBook gradeBook2( "CS102 Data Structures in C++" );
// display initial value of courseName for each GradeBook
cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
<< "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
<< endl;
return 0; // indicate successful termination
} // end main