c++學習筆記之成員函式
阿新 • • 發佈:2018-11-06
學了c++才知道什麼是面向物件什麼是面向過程。幼稚的我曾經還覺得c++和C語言差不多,接觸之後才知道c++是多麼的難,光類和物件這個知識點就看了一天。什麼建構函式解構函式,物件陣列物件成員弄得我頭大,現在才知道為什麼老師說c++是最難的語言,學c++就是在地獄裡磨鍊,從地獄出來就是天堂,會有會當凌絕頂一覽眾山小的感覺,希望自己能堅持到底,儘自己的最大努力把C++學好,不求泛而多,只求專而精。哎老大不小了,壓力巨大,希望早點工作減輕父母的壓力,回報自己的家人和那些對自己有知遇之恩的人,又想讀個博士,魚與熊掌不可兼得,希望自己從今天以後有個清楚的規劃,要超強的自律,爭取每一天都過得充實,不嘮那麼多沒用的了,要學習了。一段有錯誤的程式碼(關於c++中的成員函式)
#include<iostream> using namespace std; class time { void set_time(void); void show_time(void); int hour; int minute; int sec; } ; time t; int main() { set_time; show_time; return 0; } int set_time(void) { cin>>t.hout; cin>>t.minute; cin>>t.sec; } int show_time(void) { cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl; }
這段程式碼有四個錯誤
(1)set_time和show_time函式放在main函式之後但之前卻未宣告
(2)set_time和show_time函式按time的成員函式來宣告的但定義的時候確是按一般函式定義的。
(3)類裡面的成員只要沒有宣告均按私有成員處理,這是不能呼叫的,但是在set_time和show_time函式都呼叫了。
(4)沒有返回函式。
下面貼上按一下要求修改的程式碼
(1)將資料成員改為私有的
(2)將輸入和輸出的功能由成員函式實現
(3)在類體內定義成員函式
#include<iostream> using namespace std; class time { public: void set_time(void) { cin>>hour; cin>>minute; cin>>sec; } void show_time(void) { cout<<hour<<":"<<minute<<":"<<sec<<endl; } private: int hour; int minute; int sec; }; time t; int main() { t.set_time(); t.show_time(); return 0; }
進一步修改明確類成員函式的各種定義方法
在類體內宣告成員函式,在類外定義成員函式,類外定義成員函式要用到作用域::
#include<iostream>
using namespace std;
class time
{
public:
void set_time(void);//原來沒分號,現在有分號
void show_time(void);
private:
int hour;
int minute;
int sec;
};
time t;
void time::set_time(void)//利用作用域在類外對成員函式進行定義
{
cin>>hour;
cin>>minute;
cin>>sec;
}
void time::show_time(void)
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
int main()
{
t.set_time();
t.show_time();
return 0;
}