- Class由兩部分構(gòu)成:一組公開的操作函數(shù)和運(yùn)算符,以及一組私有的實(shí)現(xiàn)細(xì)節(jié)
- 這些操作函數(shù)和運(yùn)算符被稱為class's member function鳄炉,并代表這個(gè)class的公開接口
- stack是計(jì)算機(jī)科學(xué)中十分基礎(chǔ)的一個(gè)抽象概念,它允許我們疊放許多數(shù)值,并以后進(jìn)先出(last-in, first-out, LIFO)順序取出
- class定義式由兩部分組成:class的聲明障癌,以及緊接在聲明之后的主體
class Stack{
public:
//任何操作函數(shù)如果執(zhí)行成功,就返回true
//pop和peek會(huì)將字符串內(nèi)容置于elem內(nèi)
bool push( const string& );
bool pop( string &elem );
bool peek( string &elem );
bool empty();
bool full();
//size()定義于class本身內(nèi)
//其他members則僅僅只是聲明
int size() {return _stack.size();}
private:
vector<string> _stack;
};
inline bool
Stack::empty()
{
return _stack.empty();
}
bool
Stack::pop( string &elem )
{
if( empty() )
return false;
elem = _stack.back();
_stack.pop_back();
return true;
}
inline bool Stack::full()
{return _stack.size() == _stack.max_size(); }
bool Stack::peek(string &elem)
{
if( empty() )
return false;
elem = _stack.back();
return true;
}
bool Stack::push( const string &elem)
{
if( full() )
return false;
_stack.push_back( elem );
return true;
}
- class 名稱之后的兩個(gè)冒號(hào)(::)是所謂的class scope resolution運(yùn)算符
- Stack class 的定義和其empty()函數(shù)定義都應(yīng)該置于Stack.h頭文件中
- non-inline member functions 應(yīng)該在程序代碼文件中定義辩尊,該文件通常和class同名涛浙,其后接著擴(kuò)展名 .c .cc .cpp .cxx
2020/03/31
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者