C++基础(1)

C++基础(1),第1张

  1. 面向对象三大特性:封装、继承、多态
    抽象:概括提炼公共性质并加以描述。
    封装:将抽象出的数据成员、行为成员相结合,整合成一个整体,类。封装的实现:类+类的成员(数据、函数)
    继承:保持已有类的特性,构造新类的过程,用于实现代码重用。(对于子类而言继承基类)吸收、调整、新增
    派生:已有类的基础上新增特性而产生新类的过程。(对于父类而言派生子类)
    多态性:

  2. C++与Java

  3. 公有、私有与保护
    公有:与外部接口;私有:本类访问;保护:本类和派生类访问。
    派生类访问基类公有的和保护的成员(public、protected)

  1. 一般情况下,类的数据成员应该为私有成员。

  2. 成员函数的申明与实现:
    ①类申明中直接写出函数体,形成内联成员函数;
    ② 可以在类声明外以返回类型 类名::函数名(形参表){}形式给出函数体实现。(必须加类名限定)

  3. 构造函数
    ①不能被继承;②不能说明为虚函数;③不能显示地调用构造函数;④不能取一个构造函数的地址。

  4. 析构函数
    ①函数名为类名前加~;②基类的析构函数不能被派生类继承。

  5. 拷贝构造函数
    形参为本类对象的引用的一种特殊构造函数。用一个已存在的对象,去初始化同类的一个新对象。
    申明格式:类名 (类名&对象名}
    实现格式“类名::类名 (类名&对象名) {函数体}”

  6. 动态存储分配 new/delete

  7. 对象数组
    数组可以由对象组成。有多少元素会调用多少次构造函数。

  8. 指针与引用

*&
申明语句申明指针类型变量申明引用
执行语句获取指针所指对象的值获取对象地址
  1. 对象指针
    存放对象地址的变量,可以访问到所有对象的所有公有成员。
    声明:类名* 对象指针名
    使用:对象指针名->成员名
    初始化::对象指针使用前必须初始化,指向一个已经申明过的对象。

  2. this
    隐含于类的成员变量中,指向正在被成员函数 *** 作的对象;
    系统调用某个成员函数时,先将该对象的地址赋予this指针,然后调用成员函数;
    成员函数通过隐含使用this指针来访问该对象的其他成员;
    通常不能被显式地声明,也不直接用this来引用对象的成员。
    this this

  3. 友元 (friend关键字)
    破坏数据封装和数据隐藏的机制。
    通过将一个模块B声明为另一个模块A的友元,能够引用到A中本是被隐藏的信息。
    可以使用友元函数和友元类;
    尽量不使用或少使用友元。

  4. 友元函数
    模块A为类,模块B为函数。在类A中声明由friend关键字修饰的非成员函数,也就是友元函数B,在B的函数体中能够通过对象名访问类A的private和protected成员。

  5. 友元类

  6. static关键字

  7. 静态数据成员。
    被该类所有对象共享,不属于任何一个具体对象,属于类;只有一个静态数据存储空间;类外定义和初始化,不由构造函数分配。
    访问方式:类名::静态公有数据成员
    初始化:类型 类名::静态数据成员名 = 初始值;

  8. 静态成员函数
    由一个类的所有对象共享;维护对象之间共享的数据。
    类外调用:类名::静态公有成员函数名(实参表) 对象名::静态公有成员函数名(实参表)
    类内调用:直接调用静态成员函数
    可以访问:该类的静态数据和函数成员;访问非静态数据成员,必须通过参数传递方式得到对象名,在通过对象名访问。

  9. const关键字
    ① 常对象,数据成员不能被修改(通过成员函数也不行)类型说明符 const 对象名
    ② 常成员函数,不能修改数据成员,也不能调用其他非const成员函数,常对象只能调用其常成员函数。可以用于函数重载的区分。
    类型说明符 函数名 (形参表) const
    ③ 常数据成员,不能修改赋值;构造函数的常数据成员的初始化只能通过初始化列表进行。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1354181.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-14
下一篇2022-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存