匿名四軸c++程序學習隨記

匿名四軸程序採用c和c++混合編寫,結構清晰的同時給我這c++的小白帶來了不少問題,時間少,沒辦法,不能從頭系統的學習c++了,只能遇到什麼問題現查現瞭解了。


class是一個關鍵字,它代表在下面{...}要聲明一個類型.類在某些方面和C中的struct很相似,但也有不同,比方說類有派生類,但是沒有派生結構吧.

那麼class怎麼用呢?
先看一個例子:
class A{
public:
int a,b;
void print()
{
cout << a << ' ' << b << '\n';
return ;
}
};
在這個例子中,我們爲類A定義了兩個公有變量a和b,以及一個公有函數print()用於輸出a和b.調用則是:
A t;
t.a = 10;
t.b = 5;
t.print();
輸出:10 5
這個和struct很像吧?但是現在我們如果去掉定義中的"public:",在運行一下程序,會怎麼樣呢?編譯器報錯了!爲什麼呢?其實,這是因爲在C++的類中,如果沒有顯式地把變量或函數定義爲public的話,則會以private權限進行處理,不會作爲公有的成員,不能被外部的任何代碼讀取.如果在類裏聲明瞭成員函數,但沒有給出函數的定義,那麼在類外定義時就要寫成void A::print(),這裏printf()函數就是類A的成員函數。

類中總共有3中權限標識:public,private和protected.

public:定義的成員可以被外部訪問和修改;

private:成員不能被外部讀取和修改,只能在類的內部使用,在派生類中無法訪問;

protected:成員也不能被外部訪問與修改,只能在內部使用,但是在派生類中將作爲private成員使用.所以如果在定義類時,能夠訪問的就用public定義,不能訪問就用protected定義.

派生類:
派生類繼承了基類中所有的東西,把protected在派生類裏就相當於private,可以外部使用(這個不清楚,希望有大神指正).
class stu{
protected:
string name, birthday;
int num;
public:
void print_data()
{
cout << "name: " << name << '\n';
cout << "number: " << num << '\n';
cout << "birthday: " << birthday << '\n';
}
};
這個是學生信息類.那麼現在可以定義一個以它爲基類的派生類score:
class score:public stu{
protected:
int score;
};
這樣定義之後score類的對象將能夠訪問基類stu中的成員,並且加入成員score.
下面剩下一個構造函數與析構函數了.很多情況下我們需要在類對象創建的時候就執行一些代碼.所以就有了構造函數與析構函數.
構造函數是在類對象定義時由程序自動執行,一般用於初始化操作.析構函數是在對象被銷燬時執行.析構函數一般是釋放由構造函數申請的內存.構造函數名字和類名相同,不能有返回值,可以含參數,可以重載.析構函數命名則是在構造函數前加一個~.比如:
class stu{
protected:
int num;
string name, birthday;
public:
stu()
{
num = 0;
name = "";
birthday = "";
}
stu(int _num, string _name, string _bir)
{
num = _num;
name = _name;
birthday = _bir;
}
~stu(){}
};

stu s(123, "Xiaoming", "1900.1.1");
就等於給類中的構造函數傳遞參數,那麼現在對象s中的num爲123,name爲"Xiaoming",birthday爲"1900.1.1".

我對與類的理解大概就是這些了。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章