C++中的类

类实际上是用户自定义的类型, 包含了数据和用于处理数据的方法。类中的数据和方法称为类的成员。

1 类的定义

类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表.

如:

class Book 
{
	public:  //声明public变量和函数
		string author;   
		int page;
		int get_page(void);
		Book();  //这是构造函数声明
		~Book();  //这是析构函数声明
	protected:   //声明定义protected变量和函数
		string isbn;
		sting get_isbn(void);
	private:    //声明private变量和函数
		double prices;
		double get_prices(void);	
};

为了方便说明, 上面定义了一个非常全面的类,实际中可能不是每部分都需要用到。

2 访问修饰符 public, private, protected

访问修饰符确定了类成员的访问属性,说白了就是成员可访问的权限。 如果不声明, 默认是private. 可以有多个访问修饰符, 它的作用范围是从声明的哪一行开始, 一直到遇到下一个访问修饰符为止。

3 类方法的定义

上面定义的例子中只是声明了类方法, 还没有定义它。 定义时有2种方法,一种是在类中进行定义, 另一种是在类的外部进行定义。

3.1 在类中定义

如下面的示例, 定义了get_page方法。

class Book 
{
	public:  //声明public变量和函数
		string author;   
		int page;
		int get_page(void);
		{
			return page;
		}
		Book();  //这是构造函数声明
		~Book();  //这是析构函数声明
	protected:   //声明定义protected变量和函数
		string isbn;
		sting get_isbn(void);
	private:    //声明private变量和函数
		double prices;
		double get_prices(void);	
};

3.2 在类的外部定义

class Book 
{
	public:  //声明public变量和函数
		string author;   
		int page;
		int get_page(void);
		Book();  //这是构造函数声明
		~Book();  //这是析构函数声明
	protected:   //声明定义protected变量和函数
		string isbn;
		sting get_isbn(void);
	private:    //声明private变量和函数
		double prices;
		double get_prices(void);	
};

int Book::get_page(void)
{
	return page;
}

在类的外部进行定义时, 需要用到::, 它是作用域限定符。 上面的Book::get_page表示get_page这个方法是为Book这个类定义的。

4 构造函数和析构函数

构造函数(constructor)和析构函数(destructor)本质上也是函数, 只是比较特殊一点。 构造函数的名字跟类名一致, 析构函数的名字跟类名也一致, 只是额外在前面添加了~
构造函数在创建类的新对象时被执行, 而析构函数在销毁一个对象时被执行。 其实析构函数的名字翻译让人很难理解, 翻译成解构函数就很好理解了。

你可能感兴趣的:(C++编程,c++)