类与对象

10.1 构造和折构函数
10.1.1 构造函数
构造函数首先是一个成员函数,作用初始化对象的数据成员,特点是它的名字与类名相同,当定义对象时,将自动调用该函数。其法定如下所示。
类名(参数表)
{
函数体
}
构造函数的定义语法规定:
1.构函数名与类名相同。
2.构造函数名前没有返回类型声明。
3.构造函数中不能通过return语句返回一个值。
4.通常构造函数具有public属性。
10.1.2 折构函数
构造函数用于在创建对象时完成数据成员的初始化,与之对应,对象生命期结束前应该完成对象资源的清理,这个工作有折函数完成。
折构函数的定义形式如下:
~类名()
{
函数体
}
定义折构函数应满足以下要求:
1.折构函数的名称应该在构造函数前加一个“~”。
2.折构函数没有参数。
3.折构函数中不能通过return语句返回一个值。
4.一个类中只能有一个折构函数。不可重载。
10.1.3 浅拷贝与深拷贝
拷贝构造函数利用对象引用作为参数来引用一个新的对象,他将对象参数的属性值拷贝给新的对象,完成新对象的初始化。拷贝构造函数定义如下:
class类名
{
public:
构造函数名称(类名&变量名)
{
函数体
}

};
在c++程序中,通常有三种情况会自动调用拷贝构造函数.
1.使用一个对象初始化另一个对象。
2.对象作为实参传递给函数参数。
3.函数返回值为类的对象,创造临时对象作为返回值。
10.2 成员访问控制
从类的定义形式上可以看出。描述成员时,需要指定相应的访问限定权限。在c++程序中共有三种访问控制权限。公有(public)私有(private)保护(protected)。
1.公有权限
被public就是在成员成为公有成员,具有与内外相互的能力。可以被该类的其他函数和其它函数访问。
2.私有权限
被private修饰的成员称为私有成员,只能有类中的成员函数访问,不过通过该类的对象进行访问。
3.保护权限
被protected修饰的成员成为保护成员,弃权限制于私有和公有之间,人类成员和该类的派生派可以访问,类的其他函数不能访问。
10.3 类的组合
类的组合是指一个类包含了其他类的对象作为成员,他们的关系是包含和被包含的关系。
类名::类名(形参表):内嵌对象1(形参表)内嵌对象2(形参表)
{
类的初始化
}
10.4 类中特殊成员
10.4.1 成员变量
1.静态数据成员
静态数据成员是类中的一个成员,也就是说,同一个类中所有的对象共享该变量,所以静态数据成员对于类的所有对象只有一个副本,而且任何一个对象改变了静态数据成员的值,那么这个累死我的对象都会更新一个值。
具体定义:
staic类型标识符 静态数据成员名称;
2.this指针
类中每个对象的数据成员都占用独立空间,但成员函数是共享的,但是每个对象调用相同的函数却能显示各自对象信息。原因是每个类的成员函数都隐含了一个指向被调用的对象指针,这个指针被称为this指针。
10.4.2 成员函数
1.静态成员函数
c++中用于操作静态数据成员的函数可以定义为静态成员函数,由static关键是限定。静态成员函数的定义形式如下:
static函数返回值类型函数名(形参列表)
{
函数体
}
2.内联成员函数
类中除了包含普通函数外,也可定义内联成员函数,金玉形式也是在成员函数返回值类型前添加inline关键字,具体形式如下:
inline函数返回值类型 函数名(参数表)
{
函数体
}
10.5 友元
10.5.1 友元函数
位与另外的一个普通函数和其他类的成员函数,他不是本类的成员函数。但可以在类中由frind关键自字声明友元函数,此时该函数可以访问类中private和protect成员。具体声明的语法形式如下:
friend函数返回值类型 友元函数名(形成列表)
10.5.2 友元类
和友元函数一样,一个类也可声明为另一个类的友元。如果a类生声明为b类的友元类。则a类所有成员函数都是b类的友元函数,都可操作b类的 private和protect成员。与声明友元函数类似,声明友元类同样需要关键字 ”friend“。友元类声明如下。
class b;
class a{

friend class b;
};
10.6 字符串类
10.6.1 构造一个字符串
构造字符串就是定义string类型的变量,并对其初始化。c++就提供了灵活的方式来构造一个string对象。
10.6.2 string类的运算符
string类提供丰富的运算符,可以方便完成字符串赋值、字符串连接、字符串比较等功能。
10.6.3 字符串常用函数
1.字符串赋值
字符串赋值可以通过“=”和“assign”成员函。数来完成。
2.字符串比较
两个字符串比较可以使用比较运算符或者成员函数compare()进行。
3.字符串连接
字符串连接可以使用运算符“+”,“+=”进行连接,也可以使用成员函数append()进行字符串连接。
4.字符串类的其他成员函数
成员函数length(),size()和capacity()分别用来获取字符串的长度、大小和分配的储存空间的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值