C++学习笔记基础(1)

1,C++与C最大的区别

以前学过一些c语言,现在开始学习C++,我感觉最大的区别就是c++多了一个class的关键词,也就使得c++成为了面向对象的语言,而c语言是面向过程的语言。面向对象的三大特性:封装,继承,和多态

封装:主要是利用class里面的访问级别关键字,有public,private和protect。private和protect就能能够将数据封装起来。不被外界访问,public里面主要用来声明成员函数,因为我们就是构造一个对象主要就是想用里面的方法,所以一般的成员函数则写在public里面。

继承:继承就是定义新类的时候继承旧类,他不仅有新定义的成员和方法,还有旧的方法和成员。彼此成为基类和派生类。

多态:c++中多态主要体现在virtual上。使用virtual修饰的成员函数叫做虚成员函数,虚成员函数在派生类和基类中可以有不同的作用,这时对象在调用该成员函数时是通过动态绑定的方式选择使用基类的方法还是派生类方法。动态绑定是在编译的时候才确定的。

2,构造函数和析构函数

对于每个类而言,要么自己定义一个构造函数,要么系统默认加上一个无参的构造函数。在定义构造函数时要养成使用初始化列表的方法:

person (string my_sex = male, int my_age = 0):sex(my_sex),age(my_age) {}

sex和age为类成员。

析构函数,对于不含指针的类可以不用写析构函数。否则就要写,因为如果成员变量为指针,也就是在堆中申请了内存,我们就要手动写析构函数,在函数结束时释放内存。如要使用基类对派生类的对象进行操作,析构函数也最好写成虚函数,这样能够在析构的时候防止只析构基类而不析构派生类。

3,构造一个类时应该注意的几点问题:

1:写构造函数时应该尽量使用初始化列表

2:一般情况下将成员数据放在private里面,成员函数放在public里面

3:在写成员函数时考虑时候使用const修饰词,主要分三部分,const修饰函数参数(主要是看该参数是否为只读参数);const修饰参数返回值(一般在指针传递中使用,表明指针的内容不能被修改。函数返回值只能被赋予const修饰的同类型指针);const修饰成员函数(该成员函数不会修改任何的数据成员)

4:pass by value 和 pass by reference,在传递参数时,尽量使用传递引用,在不改变实参情况下一般都传递引用。函数返回时也尽量传递引用,前提是能够传递引用的情况下。例:

int& operate += (const int&) 像这个返回值可以使用引用。i1 += i2;变量 i1, i2都存在。返回值就直接存在i1中

int operate + (const int& , const int&) 像这种就不能返回引用,因为该操作符是i1 + i2 返回值存在一个新的申请的内存中,如果使用传递引用的方式,一旦该操作结束,申请的新的内存就会被释放掉(因为是局部变量,是系统在栈中自动申请的一块内存)。

5:对于只有几行的简单代码,尽量使用inline函数。内联函数能够大大减少函数调用的时间。

6:操作符重载既可以为成员函数,也可以为非成员函数。但是对于 << 来说只能重载为全局函数。因为是作用在cout这个对象上的。cin同理。

可以参考stl中复数的源代码进行剖析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值