C++极客班学习笔记 一

C与C++区别


c的代码包含了变量和函数,由于没有提供相关的关键字,所以C代码里面变量都是全局的,这样带来的问题是所有函数都可以去调用它们。

C++就将变量和函数包在了一起,通过面向对象的方式,来更加细的划分变量和函数的使用范围。

C++代码结构

C++由头文件和实现文件组成,头文件用于声明函数和变量,头文件一般是.h结尾,实现文件一般是.cpp结尾。但是这些不是强制性的,也就是说头文件可以不是.h结尾。

防卫式声明


有时会出现嵌套引入,比如文件中引入了一个头文件a,在另一个引入的头文件中,也引入了同样的头文件a,这样include会执行两次,代码冗余,因此,需要引入防卫式声明:

#ifndef    __COM__
#define   __COM__

#endif

模板

类可以通过模板来进行对其进行扩展,比如变量可以不再定义的时候指定类型,而在实例化的时候指定。


内联函数

内联函数指的是直接在头文件中给出函数的具体实现,但是编译器会根据代码的复杂度来决定是否真正的当成inline函数,inline函数执行快,理论上所有函数都应该写成inline比较好。


访问级别

public和private


private只能在自己的类内容中访问,外面访问不到。

构造函数

名称和类名相同,无返回值,可以设置默认值,可以使用初值列来初始化。

函数重载(overloading)

类中可以有多个同名的成员函数,这个叫函数的重载;表面上看函数名称是一样的,区别在与参数,实际上,编译器会对这些函数进行处理,处理后的函数名称是不同的。

同时,如果构造函数重载过程中,以下问题是不能够同时存在的:

原因在于:前者参数都是有默认值的,后者没有参数,遇到诸如:complex c1();或者complex c2;的对象创建语句,编译器无法判断到底采用哪个构造函数,因此上文的写法不正确。

私有构造函数(多用于单例)

如果构造一个私有的构造函数,表示这个类不能再外部被实例化,那么,我们可以在类内部实例化一个对象,并将对象设置为static,这样的话,我们可以得到一个单例。

const

看以下例子:

这个例子是无法通过执行的,会报以下错误:

大致意思是ct实例是const类型的,但是其geta方法为被标记为const,因此编译不通过。
上例可以看出,其实const是标定函数或者变量,限定函数体内不能修改成员函数的值,或者限定变量的值不能够被修改。

作业二思路

构造函数可以有两种写法

1、
这个第三个参数为Point的对象指针,麻烦的地方在于需要在构造函数中对整个Point对象进行操作

2、Rectangle(int width1 = 0, int height1 = 0, int x1 = 0, int y1 = 0)

这个方式操作成本较低

3、拷贝构造函数也是构造函数一种特例,是没有返回值的

3、拷贝赋值函数,和拷贝构造的区别在于,this对象已经构造好了,只需要对其进行赋值操作就行了,返回值可以是type& 或者void(void最好不用,无法传递)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值