const在不同位置时的不同意义

  • 指针类型前:声明一个指向常量的指针,程序中不能通过指针来改变它所指向的值,但指针本身的值可以改变,即指针可以指向其他数据;
  • "*"号和指针名之间,声明一个指针常量(常指针),指针本身的值不可改变,即不能指向其他数据,但指向的数据的值可以改变;
  • 两个地方都加,声明指向常量的指针常量,指针本身的值不可改变,指向的数据也不能通过指针改变;

函数指针

  • 使用函数指针之前,必须先赋值,使它指向一个函数入口地址,赋值语法格式为:函数指针名 = 函数名,其中函数名代表的函数必须是一个已经定义过的,和函数指针具有相同返回类型的函数,指针调用函数格式:(*指针变量)(实参列表);

访问权限

  • public:可被任意实体访问;
  • protected:只允许本类及子类的成员函数访问;
  • private:只允许本类的成员函数访问;

构造函数

  • 创建对象时,自动调用构造函数,不能在程序中直接调用,可有任意类型参数,但不能有返回类型;
  • 构造函数作用:为对象分配空间、为数据成员赋初值、请求其他资源;
  • 构造函数工作:初始化虚函数表、建立基类对象、建立非静态数据成员对象、安置虚基类对象信息、执行构造函数体中的代码;
  • 若一个类中没有定义构造函数,编译器会自动生成不带参数的默认构造函数,格式为:
<类名>::<默认构造函数名>()
{
}

析构函数

  • 析构函数作用:清除对象、释放内存;
  • 析构函数工作:执行析构函数中的代码、将对象占据的存储空间归还系统、做公共及用户要求的善后工作;
  • 析构函数无参数和返回值,一个类中只能定义一个析构函数,故不能重载,格式为:
~<类名>();

内存布局

  • 全局数据区:存放全局变量、静态数据、常量;
  • 代码区:存放类成员函数、其他函数代码;
  • 栈区:存放局部变量、函数参数、返回数据、返回地址;
  • 堆区:自由存储区;

运算符重载重载形式

  • 重载为类的成员函数,参数个数比原来的运算数少一个
<函数类型> operator <运算符> (<形参列表>)
{
<函数体>;
}
  • 重载为类的友元函数,参数个数与原运算数个数一样多;
friend <函数类型> operator <运算符> (<形参列表>)
{
<函数体>;
}
  • 函数重载:返回值类型可以相同可以不同,但形参列表一定不同;

静态数据成员

  • 初始化格式:<类型><类名>::<静态数据成员>=<值>;
  • 引用格式:<类名>::<静态数据成员>;

继承方式

  • 私有继承private:父类的公有成员和保护成员作为子类的的私有成员,且不能被子类的派生类访问;
  • 公有继承public:父类的公有成员和保护成员作为子类的成员时,仍保持原有状态,父类私有成员仍为私有;
  • 保护继承protected:父类的公有成员和保护成员成为子类的保护成员,且只能被他的派生类成员函数或友元访问,父类私有成员仍为私有;

派生类构造函数调用顺序:

  • 调用基类的构造函数,调用顺序按继承时说明的顺序;
  • 调用子对象类的构造函数,调用顺序按在类中说明的顺序;
  • 派生类构造函数体中内容;

函数模版

template < 模板形参表 >template <typename T>
返回值类型 函数名(形式参数列表)
{
    函数体语句
}
例:
template <typename T>
void swap( T& v1, T& v2)
{
    T temp;
    temp = v1;
    v1 = v2;
    v2 = temp;
}

虚函数

  • 虚函数必须是类的成员函数,不能是友元,但可以是另一个类的友元,不能为全局函数,也不能为静态函数,析构函数可以为虚函数,但构造函数不能为虚函数;

变量初始化

  • 局部变量:定义时,系统不会进行初始化;
  • 全局变量:定义时,系统自动初始化,

友元函数

  • 在类中定义过,但不是成员函数,定义在类外部,但有权访问类中成员;

this指针

  • 只有成员函数才有this指针,友元函数没有this指针;

静态成员函数与普通成员函数区别:

  • 静态成员函数没有this指针,只能访问静态成员(包括静态成员变量和静态成员函数);
  • 普通成员函数有this指针,可以访问类中任意成员,而静态成员函数无this指针;
    微信公众号:村雨1943
    创作不易,未经同意,转载请注明出处~

C++知识点总结篇的更多相关文章

  1. 25、前端知识点--webpack篇之面试考点

    前端面试之webpack篇 https://blog.csdn.net/sinat_17775997/article/details/78122999 关于webpack的面试题 随着现代前端开发的复 ...

  2. 前端经常碰到的小知识点-----js篇

    一    js 1.可视区宽和高 ① document.documentElement.clientWidth  //可视区的宽度 document.documentElement.clientHei ...

  3. C语言知识点总结篇

    Debug和Release版本比较 Debug附加了许多调试信息,主要用于调试,故文件大: Release是经过优化后的版本,去掉了调试信息,代码进行了优化,故文件较小,且编译速度快过Debug,用于 ...

  4. java基础 小知识点汇总篇

    1.&和&& |和|| 的区别? a&b,会执行a,执行b ,得出结论 a&&b,会执行a,如果a false,则不执行b,直接返回false 2.Ma ...

  5. Python知识点总结篇(五)

    软件目录结构规范 目标: 提高可读性: 提高可维护性: 常见结构 Demo/ |-- bin/ #存放项目的一些可执行文件 | |-- demo #可执行程序,启动demo调main.py | |-- ...

  6. Python知识点总结篇(二)

    列表 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加.删除或改 ...

  7. Python知识点总结篇(三)

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作: 关闭文件: with:自动关闭文件: with open('log', 'r') as f: ... 文件 ...

  8. Python知识点总结篇(四)

    递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...

  9. Python知识点总结篇(一)

    Python基础 变量 变量类型: 1.数字型 整形:int: 浮点型:float: 布尔型:bool,True和False: 复数型:complex: 2.非数字型 字符串: 列表: 元祖: 字典: ...

  10. JAVA知识点总结篇(三)

    抽象类 使用规则 abstract定义抽象类: abstract定义抽象方法,只有声明,不需要实现: 包含抽象方法的类是抽象类: 抽象类中可以包含普通方法,也可以没有抽象方法: 抽象类不能直接创建,可 ...

随机推荐

  1. JavaWeb之Tomcat(1) —— Tomcat的目录结构

    1. bin 文件夹 存放Tomcat的可执行文件 (1) startup.bat 文件,启动Tomcat服务的批处理文件. (2) shutdown.bat 文件,结束Tomcat服务的批处理文件. ...

  2. 三大框架 之 spring-JDBC

    目录 spring-JDBC模板 Spring的JDBC的模板 JDBC模板使用的入门 引入jar包 创建数据库和表 使用JDBC的模板 将连接池和模板交给Spring管理 配置文件配置Bean 使用 ...

  3. Java 面向对象(十七)

    第一章 File类 1.1 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 1.2 构造方法 public File(String pat ...

  4. openwrt共享打印机需要安装哪几个文件

    opkg updateopkg install luci-app-p910ndopkg install kmod-usb-printer

  5. 特征重要度 WoE、IV、BadRate

    1.IV的用途 IV的全称是Information Value,中文意思是信息价值,或者信息量. 我们在用逻辑回归.决策树等模型方法构建分类模型时,经常需要对自变量进行筛选.比如我们有200个候选自变 ...

  6. 对pdf中的图片进行自动识别

    对pdf中的图片进行自动识别 商务合作,科技咨询,版权转让:向日葵,135—4855__4328,xiexiaokui#qq.com 原理:增强扫描 效果:自动识别所有图片中的文字,可以选择.复制,进 ...

  7. android -------- GifView 显示gif图片

    最近的项目需要在界面显示Gif动图,查找网络资料,总结了一下,分享一下, 一个GifView的gif图加载库以有效地显示GIF, 您可以启动,暂停和停止gifView 在app 的 build.gra ...

  8. 产品经理 写SQL

    产品经理必备技能:写SQL - 云+社区 - 腾讯云https://cloud.tencent.com/developer/news/3177 产品经理学SQL(一)一个小时上手SQL | 人人都是产 ...

  9. centos7安装python3.6独立的virtualenv环境

    centos7安装python3.6独立的virtualenv环境 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bzip2-devel opens ...

  10. Qt编写气体安全管理系统25-位置调整

    一.前言 位置调整功能,以前是直接写在设备按钮这个自定义控件类中,核心就是安装事件过滤器,识别鼠标按下.鼠标移动.鼠标松开,这三个event,做出相应的处理即可,后面发现这个功能其实很多自定义控件或者 ...