赞
踩
类是用户自定义的一种数据类型
类是对象的抽象
对象是类的实例化
类定义的一般形式
class 类名
{
public: //公共成员,类内和类外都能直接访问
成员变量或者成员函数
......
private: //私有成员,类内可以直接访问,类外不能直接访问,但是可以通过调用类中的函数接口间接访问
成员变量或者成员函数
......
protected: //保护成员,类内可以直接访问,类外不能直接访问,但是可以通过调用类中的函数接口间接访问
成员变量或者成员函数
......
};
类中如果没有任何权限限制,默认为private私有权限
创建一般形式:
类名 对象名;
通过对象访问成员变量或者成员函数:
对象名.成员名;
(1)构造函数:一般用于给成员做初始化
构造函数的一般形式:
构造函数名(参数列表) //构造函数名必须和类名相同
{
代码模块;
}
eg:
class Demo
{
public:
Demo(int value) //Demo类的构造函数,由系统自动调用
{
val = value;
cout << __func__ << ":" << __LINE__ << endl; //打印函数名和行数
}
public:
int val;
};
Demo obj(10); //定义了一个obj对象,并用10给val做了初始化,对象后的参数就是构造函数的参数
注意:
在创建对象时,用户定义的构造函数会由系统自动调用
如果在类中没有定义构造函数,会由系统自动创建一个并且调用
(2)析构函数
析构函数一般用于对数据资源进行回收
析构函数定义的一般形式:
~析构函数名() //析构函数名必须和类名相同,析构函数没有参数
{
代码模块;
}
析构函数在对象结束时由系统主动调用
练习:测试构造函数和析构函数的调用
(3)构造函数和析构函数调用时机
eg:
Demo obj(123);
Demo obj1(312);
创建对象时:
obj先进行构造函数,obj1再进行构造函数
对象结束时:
obj1先进行析构,obj再进行析构
C++类中允许成员函数在类内声明,类外实现
注意:类外实现成员函数功能时,需要在函数名前面指定函数作用域
class Demo
{
public: //公共成员,类内和类外都能访问
int getval();
private: //私有成员,在类内能直接访问,在类外只能通过类中公共函数接口访问
int val;
};
int Demo::getval()
{
return val;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。