有人可以解說一下這各程式類別嗎?

class Book

{

private:

char title[32];

int page;

public:

void show()

{

cout<<\"book name: \"<<title<<endl;

cout<<\"total page: \"<<page<<endl;

}

};

void main()

{

Book one;

one.title=\"Sociaty\";

one.page=1000;

one.show();

}

有人可以幫我註解說明一下這各類別嗎??

越詳細越好 謝謝

3 Answers

Rating
  • SiYu
    Lv 5
    1 decade ago
    Favorite Answer

    基本上這個程式有數個錯誤. 我先把程式內容說明. 在說錯誤的地方

    class Book   // 定義一個Book class{private:   // 告知compiler 下面的Book 成原是私有的. 非本class 的member function 無法修改存取它們char title[32];  // 宣告一個字元陣列 title 大小為32(可放入31個字的字串)int page;         // 宣告一個整數 pagepublic:  // 告知compiler  下面的class member 是公開的. 在認何地方都可以使用他們void show()   // 設計一個member function show  不須傳入參數, 也不回傳{cout<<"book name: "<<title<<endl;  // 顯示book name 並把member data title 輸出到螢幕cout<<"total page: "<<page<<endl; // 顯示total page 並把member data page 輸出到螢幕}};void main() // 主程式{Book one;  // 宣告一個變數one 為Book 行別one.title="Sociaty"; // 設定one.tilte 為Socitay                            // note 但是此處有兩個錯誤                            // 1. title 是Book 的私有成員所以非Book 的member function . 無法修改,或是讀取她.                           // 2. title 是一個陣列. 無法修改陣列指向的address. 在此把one.title="Socity"; 會修改title 指向的addressone.page=1000;  // 同上也是錯誤. 因 page 是 Book 的私有成員one.show(); // 呼叫Book 的show(). }因此這個程式無法被compiler 如要正確的compiler 此程式必須把程式改成如下#include <iostream>#include <string.h>using namespace std;class Book{private: char title[32]; int page;public: void show() {  cout<<"book name: "<<title<<endl;  cout<<"total page: "<<page<<endl; } void SetTitle(const char *a_zTitle)  // 設定Title 的member function 傳入一個字元指標 {    strcpy(title,a_zTitle);  // 把a_zTitle 指向的內容copy 到陣列title, 因為SetTitle() 是Book 的 member function. 所以可以修改Book 的所有member, 包含私有的. } void SetPage(const int a_nPage)  // 設定page {    page=a_nPage;  // 把a_nPage 設到page }};void main(){Book one;one.SetTitle("Sociaty");  // 呼叫Book 的member data SetTitle()one.SetPage(1000);  // 呼叫SetPage()one.show();}

    Source(s): QQ
  • Almond
    Lv 6
    1 decade ago

    還有一個方法就是利用建構子來得到初值。

  • 1 decade ago

    class Book

    {

    private: //以下的參數只有繼承BOOk才可以用

    char title[32];  //就....字元陣列

    int page;    //就....int變數    

    public:     //以下參數為共用

    void show()   //宣告依個函數名稱

    {

    cout<<"book name: "<<title<<endl; //印出title

    cout<<"total page: "<<page<<endl; //印出page

    }

    };

    void main()

    {

    Book one; //宣靠一個BOOK類別的參數one

    one.title="Sociaty"; //初始化title

    one.page=1000; //初始化page

    one.show(); //呼叫show函數

    }

    Source(s): 自己
Still have questions? Get your answers by asking now.