程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [C++]C++類基本語法,類基本語法

[C++]C++類基本語法,類基本語法

編輯:C++入門知識

[C++]C++類基本語法,類基本語法


本測試代碼包括以下內容:

(1)如何使用構造函數;
(2)默認構造函數;
(3)對象間賦值;
(4)const使用語法;
(5)定義類常量: 一種方法是用enum,另一種方法是使用static。

#include <iostream>

using namespace std;

enum sexType
{
    MAN,
    WOMAN
};

class Human
{
    //the default is private
    private:
        string name;
        sexType sex;
        int age;


        //(5) 定義類常量: 一種方法是用enum,另一種方法是使用static
        enum{LEN=1};
        static const int LEN2 = 3;

    public:
       //如果類定義中沒有提供任何構造函數,則編譯器提供默認構造函數。但,如果類中定義了構造函數,那麼編寫者必須同時提供一個默認構造函數。
       //有兩種方法提供默認構造函數:
       //(1) 定義一個沒有參數的構造函數:Human();
       //(2) 為非默認構造函數的參數提供默認值: Human(string m_name="no name", int m_age=0, sexType m_sex=MAN);
       //兩種定義方式只能二選一
       Human();
       Human(string m_name, int m_age, sexType m_sex);
       Human(int m_age);
       ~Human();

       //定義在類聲明中的方法為內聯方法。也可以使用inline關鍵字將函數定義在類聲明外部。
       void show() const  //const加在函數名後面表示該函數不會修改該類的數據成員。
       {
           cout<<"This is "<<name<<", sex: "<<sex<<", "<<age<<" Years old."<<endl;
       }


};

Human::Human()
{
    cout<<"default construct function"<<endl;
}

Human::Human(string m_name, int m_age, sexType m_sex)
{
    cout<<"construct function: "<<m_name<<endl;
    name = m_name;
    age = m_age;
    sex = m_sex;
}

Human::Human(int m_age)
{
    age = m_age;
}

Human::~Human()
{
   cout<<"destroy function: "<<name<<endl;
}

int main()
{
    cout << "This is test code of C++ class: "<< endl;
    {
        //(1) use of construct function
        Human jack = Human("Jack", 30, MAN);  //顯示調用
        Human jerry("Jerry", 26, MAN);        //隱式調用
        Human *pTom = new Human("Tom", 10, MAN); //New調用
        //當構造函數只有一個參數時,可以直接用賦值語句賦值。只有一個參數的構造函數將會被自動調用
        Human marry = 11; //賦值調用

        //(2) defaults construct function
        Human Lucy;

        //(3) 賦值對象
        Human James;
        James = Human("James", 28, MAN); //創建一個臨時對象James,copy一份兒該對象賦值給James變量。緊接著該臨時對象會被銷毀。

        //(4) const
        const Human Thomas("Thomas", 29, MAN);
        Thomas.show();  //The show method must define with 'const'
    }
    return 0;
}

運行結果為:


c語法與c++語法差別到底有多大?

在c中不支持,是因為該語法格式並不在標准的c中,所以gcc編譯器無法正常識別,而C++是c語言的超集,這樣就可以在for中定義局部變量了。其實你可以試試 這樣也行 如下:
int i=0;
for( ; i< 10 ;i++)
 

C語言的基本語法

關鍵字 所謂關鍵字就是已被Turbo C2.0本身使用, 不能作其它用途使用的字。例如關 鍵字不能用作變量名、函數名等。 Turbo C2.0有以下關鍵字: Turbo C2.0擴展的共11個 asm _cs, _ds, _es, _ss, cdecl, far, near, huge, interrupt, pascal, 由ANSI標准定義的共32個 auto, double, int ,struct, break, long ,switch ,case, enum, register ,typedef, char, extern ,return ,union ,const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof ,volatile ,do ,if, while ,static ,
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved