C++面向对象编程(一)

书籍推介:

  • c++ Prinmer
  • Effective C++
  • STL 源码剖析

C语言和C++的差别

在这里插入图片描述

Objec Based(基于对象)vs. Object Oriented(面向对象)

Objec Based(面对的是单一的class的设计)
Object Oriented(买你对的是多重classes的设计 classes 和和 clsses 之间的关系)

Classes 的两个经典分类:

Class without pointer member(s)
Class with pointer member(s)

头文件的引用

使用<> 引用标准库的.h文件
使用""引用自己创建的头文件
例如:
#include
#include “hello.h”

class的声明

有class head 和 class body组成
class 存在头和 body

class 的构造函数

  • 名称一定要和类名称一样
  • 不需要返回类型

在这里插入图片描述

  • 构造函数特殊的初始列:

:re®,im (i) 初始化

在这里插入图片描述

  • 重载(overloading)

虽然在函数中我们编写的函数名是一样的,但是在编译器中被编译成不同的函数

  1. 存在默认值在这里插入图片描述
  2. 不存在参数
    在这里插入图片描述
    1和2是存在冲突的,不能重载
  • 将构造函数放到private(Singleton设置模式)单例模式

-在这里插入图片描述

inline 函数

函数在class body 内定义完成
在函数前面存在inline关键字

访问级别

public
private

常量成员函数

在这里插入图片描述
在这里插入图片描述

参数传递:

pass by value vs pass by reference (to const)

  • 通过值传递
    在这里插入图片描述
  • 通过引用传递:
    (to const不可以改变值)
    在这里插入图片描述
返回值传递

return by value vs. return by reference(to const)

friend(友元)

在这里插入图片描述在这里插入图片描述

  • 相同的class的各个object是互为friends
    -在这里插入图片描述

总结:

数据尽量放到private中
需要加const 就要加const
能用pass by reference 就用 pass by reference (在函数中创建的内容不能使用引用,传递出函数外)

能用return by reference 就用 returnby reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值