类是可以自己定义的一种自定义数据类型,是对某一类对象的抽象,对象是类的一个实例。
1.类
class 类名//一般首字母大写
{private:成员属性或成员函数protected:成员属性或成员函数public:成员属性或成员函数
};//
public(公有类型)、private(私有类型)和protected(保护类型)关键字称为访问权限符,它规定了类中成员的访问属性,默认时为私有的(private)。成员属性代表对象的属性;成员函数实现对象的行为。
1.1类的定义
public 声明成员为公有成员。完全公开。都可以访问。
private声明成员为私有成员。该级别的成员只能被它所在类中的成员函数和该类的友元函数访问。
protected声明成员为保护成员。具有这个访问控制级别的成员,外界是无法直接访问的。它只能被它所在类及从该类派生的子类的成员函数及友元函数访问。
1.2成员函数
在使用类的成员函数时,要注意它的访问权限(它能否被访问),以及它的作用域(类函数能在什么范围内被访问)。
类的成员函数定义:代码较少的函数可以直接在类内定义,自动成内联函数;代码较多的函数可在类内函数声明,在类外函数定义。在定义函数时,必须用作用域符“::”表明函数所属的类。
返回类型 类名::函数名(参数列表)
{//函数体
}
1.3内联函数
内联函数是一种在编译时将函数体的代码直接插入到调用该函数的地方,而不是像普通函数那样进行函数调用的机制。在 C++ 中,使用inline
关键字来声明内联函数,但编译器不一定满足这种要求。对于内联函数,编译器将用函数代码替换函数调用,这样程序就无需跳到另一个函数执行,执行完后再跳回来。因此内联函数的运行速度比常规函数稍快。
类中的内联函数:
内联函数主要的应用场景就是类。如果类的成员函数非常简单(不超过三行代码),可以将成员函数定义在类中,这时该函数自动成为内联函数,如果成员函数较复杂(超过三行),则在类中声明成员函数,而在类外定义。
1.4成员函数重载
在同一个类里,有两个以上的函数具有相同的函数名,这几个成员函数构成函数重载。
2.对象
2.1对象的创建
定义了类,就相当于定义了一个数据类型,可以定义变量(即对象),数组和指针等。
对象的定义格式如下:
类名 对象名;
2.2对象通过 "." 访问其成员变量和成员函数
对象名.成员变量 //访问对象的成员变量.对象名.成员函数 //访问对象的成员函数.
2.3对象的指针通过 "->" 访问其成员变量和成员函数
对象的指针->成员变量对象的指针->成员函数
2.4对象的引用
对象定义一个引用变量,它们共用同一段存储单元,实际上它们是同一个对象。
对象定义引用:
类型 &引用变量名=对象名;