您的位置:首页 > 编程语言 > C语言/C++

学习C++的一点归纳总结

2017-07-06 10:25 267 查看
最近用了几天时间学习c++,使用的书籍是 C++ primer plus ,(虽然网上对这本plus版本评价很差,但是个人感觉作为初学者入门还是不错的)

C++作为一门面向对象的语言,面向对象和多态是其特点:其中,面向对象是为了封装数据和函数,便于操作使用,而多态则是使同名的函数的普遍性更强,使用起来更方便(STL中的string类,相比传统的字符串数组,就是一个很好的例子)

个人感觉,要熟练运用C++,除了不断地练习,还需要思考:“每一行代码究竟调用了什么函数才实现的功能”,因为C++中总是存在着一些规则和隐式地转换,尤其是派生类调用基类的函数。这样才能对C++有更深的理解。

书中教我们一步一步构造了一个类及其派生类:

构造一个类(*表示重要):

-》类的数据(私有) :通过 成员函数 和 友元函数 访问。

-》类的函数:

—》* 构造、析构函数 用于初始化类

一般直接给成员数据赋值即可,也可以用成员初始化列表

一般有一个默认构造函数和一个显式参数构造函数

—》*(显式)复制构造函数、重载赋值运算符函数、析构函数 :

当类数据需要动态分配内存时,这三个函数需要显式定义,而且常常联系在一起

用于 借助=,用类对象给类对象赋值

—》* 运算符重载(成员函数):

往往为了使类的使用变得更加直观

重载单目运算符([]、++):操作数只有一个,即为对象本身

重载双目运算符(+、-、=):操作数有两个,其中一个必须为对象本身,对象常常作为 运算符左边的操作数,且不能改变位置。

返回值常常为本对象的引用,即*this

注意:函数的参数和操作数不能等价,参数可以作为操作数本身,也可以用来确定操作数,如class1[i]

—》* 友元函数(不是成员函数): 常常用来重载运算符

和 运算符重载成员函数 相比,优点是 可以改变 本对象作为操作数时 相对于运算符的位置,缺点是 有些运算符只能作为成员函数(如[ ]、=)

—》类的类型转换:

普通类型变量->类对象: 要求有一个 只接受一个参数的构造函数,其本质就是调用此单参数构造函数 来进行初始化(另外,不用重载赋值运算符,可以直接给类对象用 = 来用普通类型赋值)

类对象->普通类型变量:需要定义相应的转换函数。例如 operator int()

要注意的一点是,类的类型转换只能在 类存在单参数的构造函数时 才可以使用,(很好理解吧)或者构造函数的其他参数有默认值。

同样,关于C++的派生类,也可以按照以上内容去学习相应的语法,理清了构造一个类的思路后,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: