【C++】class的设计与使用(一)实现一个class

Class

  1. 需要包含一个头文件;
  2. class的名称被视为一个类型,就像int、double一样;
  3. 每个class会提供一组操作函数,作用于对象上;
  4. 一般class由两部分组成:
    public操作函数和运算符+private实现细节。
  • 这些操作函数和运算符称为class的成员函数,代表这个class的公开接口;身为class的用户,只能访问其公开接口;
  • private实现细节可以由成员函数的定义以及与此class相关的任何数据组成。

实现一个Class

从实现一个 栈(stack)开始:

栈允许存放许多数值,并以后进先出的顺序取出:
以pushing 方式存入数值,以popping方式取出最后一个被pushed的数值。

class Stack {

public:

	 //public接口
	 //public可被程序任何地方访问

private:

	//private的实现部分
	//private只能被class内部或class friend访问

};
//定义如下
class Stack
{
public:
	bool push(const string&);
	bool pop(string &elem);
	bool peek(string &elem);
	bool empty();
	bool full();
	int size() { return _stack.size();}

private:
	vector<string> _stack;
};

所有成员函数都要在class内声明,会自动被视为inline函数;
而在class外定义成员函数时,必须用特殊的语法:

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函数和class定义都放在对应的.h文件中

  • 非inline函数应该放在和class同名的.cpp文件中文章来源地址https://uudwc.com/A/ed4oN

//Stack member function的定义
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;	
}

原文地址:https://blog.csdn.net/weixin_49347928/article/details/133219052

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月24日 06:11
全球南方《乡村振兴战略下传统村落文化旅游设计》许少辉八一新枝——2023学生开学季辉少许
下一篇 2023年09月24日 06:12