C++学习记录

news2024/11/14 8:49:02

C++学习

  • 1.const,mutable,初始化列表,this指针
  • 2.static
  • 使用类
    • 友元
      • 作用
      • 友元全局函数
      • 友元类
      • 友元成员函数
    • 运算符重载
      • 左移运算符 <<
      • 下标运算符
      • 赋值运算符
      • 括号运算符
      • 一元运算符
    • 自动类型转换
      • 隐式类型转换
    • 转换函数
  • 继承
    • 继承方式
    • 构造函数继承
    • 名字遮蔽和类作用域
      • 名字覆盖
      • 类作用域
    • 继承的特殊关系
  • 多态
    • 如何析构派生类
    • 纯虚函数和抽象类
    • dynamic_cast
    • typeid运算符和type_info类
  • 泛编程
    • 自动推导类型
    • 函数模板
    • 具体化的函数模板
    • 函数模板分文件编写
    • 函数模板高级
    • 类模板
    • 模板类和函数
    • 模板类与友元
    • 将模板类用作参数
  • 编译预处理
    • 1.包含头文件
    • 2.宏定义
    • 3.条件编译
  • 编译与链接
  • 命名空间
    • 作用
    • 语法
    • 使用命名空间
    • 注意事项
  • c++风格类型转换
  • 迭代器
  • 基于范围的for循环
  • list链表容器
    • 构造函数
  • STL算法
  • 智能指针
  • 异常(不是很重要)
  • 断言
  • 委托构造
  • 继承构造
  • lambda函数
  • 右值引用
  • 移动语义
  • 完美转发
  • 可变参数模板
  • chrono时间库


1.const,mutable,初始化列表,this指针

#include<bits/stdc++.h>
using namespace std;
#define N 200002
#define mod 80112002
class CGirl{
public:
    mutable string m_name;//mutable可以突破const限制
    int m_age;
    //普通构造函数
    CGirl(string name,int age){
        m_name=name,m_age=age;
    }
    //初始化列表
    // CGirl(string name,int age):m_name("美丽的"+name),m_age(age-1){
    //     m_name="西瓜";//如果在函数中赋值,会覆盖掉初始化列表的值
    //     cout<<"调用了构造函数\n";
    // }
    void show() const{//const表示不能修改
        cout<<"姓名:"<<m_name<<",年龄:"<<m_age<<endl;
    }
    const CGirl& pk(const CGirl& g) const{
        if(g.m_age < this->m_age)return g;
        return *this;
    }
};
int main(){
    CGirl g1("冰冰",19),g2("玲玲",15),g3("水水",20),g4("火火",77),g5("木木",28);
    const CGirl& g=g1.pk(g2).pk(g3).pk(g4).pk(g5);
    g.show();
    return 0;
}

2.static

1.静态成员不属于对象
2.静态成员变量&函数:与全局变量&函数性质相似,同时类的对象还可以访问静态成员
3.静态成员函数只能访问静态成员
4.静态成员函数中没有this指针
5.语法

int CGirl::m_age=8;//初始化静态成员变量

6.空指针可以调用没有用到this指针的非静态成员函数

使用类

友元

作用

用于访问私有成员

友元全局函数

在这里插入图片描述

友元类

在这里插入图片描述
友元不是相互的

友元成员函数

语法有点复杂,就不了解了

运算符重载

语法:返回值 operator 运算符(参数列表)

  • 非成员函数
    在这里插入图片描述
  • 成员函数
    在这里插入图片描述
    在这里插入图片描述

左移运算符 <<

全局函数实现
在这里插入图片描述
用成员函数不大行,不然就要写成 g << cout 了

下标运算符

在这里插入图片描述

下标运算符必须以成员函数的形式重载
在这里插入图片描述

赋值运算符

在这里插入图片描述

括号运算符

在这里插入图片描述

一元运算符

++举例
在这里插入图片描述

自动类型转换

隐式类型转换

在这里插入图片描述

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

转换函数

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

继承

在这里插入图片描述

继承方式

在这里插入图片描述
using 更改访问权限
在这里插入图片描述

构造函数继承

在这里插入图片描述

在这里插入图片描述

名字遮蔽和类作用域

名字覆盖

若基类的成员与派生类的成员重名,则调用的是派生类的成员(记住不是覆盖!!)

类作用域

名字遮蔽的原因:
在这里插入图片描述

继承的特殊关系

在这里插入图片描述

多态

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

如何析构派生类

当派生类析构函数执行后,会强制执行基类析构函数
当基类指针a指向派生类时,若delete a,只会调用基类析构函数,存在隐患
所以,我们应该将基类的析构函数设置为virtual,这样当delete a 时,会先调用派生类的析构函数,然后调用基类析构函数

纯虚函数和抽象类

在这里插入图片描述

dynamic_cast

在这里插入图片描述

typeid运算符和type_info类

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

泛编程

自动推导类型

auto

函数模板

在这里插入图片描述

具体化的函数模板

在这里插入图片描述

在这里插入图片描述

函数模板分文件编写

在这里插入图片描述

函数模板高级

在这里插入图片描述

类模板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
容器都是用模版类实现的

模板类和函数

在这里插入图片描述

模板类与友元

在这里插入图片描述

将模板类用作参数

在这里插入图片描述

编译预处理

1.包含头文件

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

2.宏定义

在这里插入图片描述

3.条件编译

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

编译与链接

在这里插入图片描述
在这里插入图片描述
黄->蓝->粉: 预处理
粉->黑 : 编译
黑->棕 : 链接

命名空间

作用

在这里插入图片描述

语法

在这里插入图片描述

使用命名空间

1.命名空间::名字
2.using 命名空间::名字
3.using namespace 命名空间

注意事项

在这里插入图片描述

c++风格类型转换

在这里插入图片描述
暂时对新手没啥用处,就不记录了

迭代器

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

基于范围的for循环

在这里插入图片描述
加只读引用效率更高
在这里插入图片描述

list链表容器

构造函数

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

STL算法

在这里插入图片描述

智能指针

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

异常(不是很重要)

断言

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

委托构造

将构造函数简化
在这里插入图片描述

继承构造

在这里插入图片描述

lambda函数

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

右值引用

在这里插入图片描述
右值引用后就变为了左值

移动语义

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

完美转发

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

可变参数模板

支持任意类型,任意个数的参数
在这里插入图片描述

chrono时间库

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1981440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大气能见度测量仪的功能优势:安心守护

大气能见度是衡量空气质量与交通安全的重要指标之一&#xff0c;它直接关系到人们的出行安全、航空航行的顺畅以及环境监测的准确性。为此&#xff0c;大气能见度测量仪应运而生&#xff0c;以其独特的功能优势&#xff0c;成为现代气象观测与交通管理中不可或缺的高科技设备。…

数据资源:机遇与挑战并存的新时代

数据资源&#xff1a;机遇与挑战并存的新时代 2023年全国数据生产总量达到32.85泽字节&#xff08;ZB&#xff09;&#xff0c;同比增长22.44%&#xff0c;数据生产规模持续扩大&#xff0c;其中非结构数据增长尤为突出&#xff0c;这得益于5G、AI技术的发展和智能设备的应用。…

ME31K-创建合同

ME31K创建合同 合同分为&#xff1a;数量合同和价值合同 CMK代表数量合同。CWK代表价值合同。 输入对应数量或价值后&#xff0c;点击保存。 点击保存后。系统会带出一个合同号。 可以引用这个合同号&#xff0c;去创建采购订单或者计划协议。

【从零开始一步步学习VSOA开发】创建VSOA的server端

创建VSOA的server端 创建工程 参考 hellovsoa 工程&#xff0c;创建 server 工程&#xff0c;工程源码修改如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <netinet/in.h> #include <arpa/inet.h> #…

zabbix7.0TLS-02-客户端zabbix-agent部署和配置

文章目录 1 介绍2 工作模式2 部署2.1 RPM 包方式部署 3 配置3.1 配置文件位置3.2 主配置文件布局3.2.1 常规参数3.2.2 高级参数 3.3 部分配置参数详解3.3.1 通用参数3.3.2 被动模式参数3.3.3 主动模式参数 4 测试4.1 Agent 本机测试4.2 在服务端 Zabbix-server 测试和 Agent 的…

Opengl 安装

安装Cmake&#xff1a;Download CMake 安装GLFW&#xff08;source package&#xff09;:An OpenGL library | GLFW glad.dav1d.de 下载glad&#xff0c;选择version3.3 Core --Generate生成。然后点击glad.zip文件下载。 在cmake配置glfw&#xff1a;config-generate 构建GLF…

场外个股期权也可以随时平仓?场外期权行权是什么时候?

今天带你了解场外个股期权也可以随时平仓&#xff1f;场外期权行权是什么时候&#xff1f;A股场外个股有期权&#xff0c;主要对应的标的是沪深交易所上市的个股&#xff0c;除了st、次新股等受到限制&#xff0c;90%的股票都可以购买。 场外个股期权是否可以随时平仓 场外个…

MySQL数据库管理系统在Linux上安装部署

1. MySQL 5.7版本安装 1.1 安装 &#xff08;1&#xff09; 配置yum仓库 # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装Mysql yum库 rpm -Uvh http://repo.mysql.com/mysql57-community-release-el7-7.noarch.rpm 注意&#xff1a; 由于M…

OpenCV及rembg去除图像背景

OpenCV去除图像背景 去除图像背景&#xff0c;需要综合使用二值化&#xff08;thresholding&#xff09;、腐蚀&#xff08;erosion&#xff09;、膨胀&#xff08;dilation&#xff09;以及位运算&#xff08;bitwise operations&#xff09;&#xff0c;代码如下&#xff1a…

【独家原创RIME-CNN-LSSVM】基于霜冰优化算法优化卷积神经网络(CNN)结合最小二乘向量机(LSSVM)的数据回归预测

【独家原创RIME-CNN-LSSVM】基于霜冰优化算法优化卷积神经网络(CNN)结合最小二乘向量机(LSSVM)的数据回归预测 目录 【独家原创RIME-CNN-LSSVM】基于霜冰优化算法优化卷积神经网络(CNN)结合最小二乘向量机(LSSVM)的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本…

成品油综合监管云平台:系统功能全方位解析

成品油综合监管云平台&#xff0c;作为集数据收集、统计分析、监管、预警应急安全等功能于一体的信息化监管系统&#xff0c;正逐步成为政府监管部门提升管理效率、保障市场秩序的重要工具。 本文将详细解析成品油综合监管云平台的多项核心功能&#xff0c;展现其在现代成品油…

习题2.31

先上代码 (defn square [x](* x x)) (defn square-tree[tree](tree-map square tree) )(defn tree-map [op tree](cond (not (seq? tree)) (op tree)(empty? tree) nil:else (cons (tree-map op (first tree)) (tree-map op (rest tree)))) )题目实际上是想让我们将树的遍历…

【网络】|wireshark

1、wireshark 1.12的使用 参考: https://blog.csdn.net/xb_zed/article/details/116305363 重点&#xff1a; 1.1 设置混杂模式

从0开始搭建vue + flask 旅游景点数据分析系统(七):可视化前后端对接实现

这一期继续编写flask后端&#xff0c;并且完成echarts折线图、柱状图和饼图的对接。 1 新增一些依赖 pip install Flask-SQLAlchemy Flask-Marshmallow pymysql修改 init.py文件&#xff0c;下面给出完整代码&#xff1a; from flask import Flask from flask_sqlalchemy im…

Studying-代码随想录训练营day57| prim算法精讲、kruskal算法精讲

第57天&#xff0c;图论07&#xff0c;两个最小生成树算法的讲解&#x1f4aa;(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 题目&#xff1a;53. 寻宝&#xff08;第七期模拟笔试&#xff09; (kamacoder.com) prim算法精讲 拓展 总结&#xff1a; …

新手小白嵌入式单片机教程,ESP32

1.什么是ESP32。 ESP32是一款由乐鑫信息科技&#xff08;Espressif Systems&#xff09;推出的高度集成的低功耗系统级芯片&#xff08;SoC&#xff09;&#xff0c;它结合了双核处理器、无线通信、低功耗特性和丰富的外设&#xff0c;特别适用于各种物联网&#xff08;IoT&am…

RabbitMQ如何保证可靠性

在RabbitMQ中可以将消息传递的链路简化成如下图&#xff1a; 从上图可以发现&#xff0c;主要分为三个角色&#xff1a;Producer、Consumer、RabbitMQ Broker 正常情况下&#xff0c;Producer生产消息&#xff0c;安全的到打Broker的Exchange&#xff0c;然后根据转发规则&…

springboot新农村综合展示平台-计算机毕业设计源码41793

摘 要 新农村综合展示平台是利用微信小程序开发的一种新型农村信息展示和交流平台&#xff0c;旨在通过数字化技术手段推动乡村振兴&#xff0c;促进农村资源整合和信息共享。本论文通过对新农村发展现状和需求进行分析&#xff0c;结合微信小程序开发技术&#xff0c;设计并实…

【Tessent】【Command】set_design_level Design Level

UsageDescriptionphysical_block vs. sub_blockinstrument_block set_design_level 命令的基本内容&#xff0c;以及不同 design level 之间的区分。 Usage 该命令的用法比较简单&#xff0c;主要是区分不同的 design level。 set_design_level {chip | physical_block | sub…

C++三种继承方式-公共/保护/私有继承

public、protected和private的区别在于&#xff1a; public在子类和类外都可以随意访问。 protected在子类中可以访问&#xff0c;但是在类外无法访问。 private在子类和类外都无法访问。 注意&#xff1a;父类中的所有非静态成员属性都会被子类继承下去&#xff0c;包括私有…