C++ | 学习笔记

C++ Prinmer Plus 学习笔记(第一章) C++ Prinmer Plus 学习笔记(持续更新) (PS:参考书籍是C++Prinmer Plus 和易学C++) 什么是C++?   1:在C语言基础上添加了“面向对象编程”的支持;  2:继承了C语言的高效、简洁、快速和可移植性的传统; 3:模版特性提供了另一种全新的编程方法-------通用编程; 4:新术语对象、类、封装、数据隐藏、多态和继承等。 C语言编程原理 阅读详情

C++ | 学习笔记

1. Hello world

#include <iostream>

int main()
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

2. 函数

函数重载

#include <iostream>

int sum(int, int);

int sum(int, int, int);

int main()
{
    std::cout << sum(1, 2) << std::endl; // Output: 3
    std::cout << sum(1, 2, 3) << std::endl; // Output: 6
    return 0;
}

int sum(int i1, int i2)
{
    return i1 + i2;
}

int sum(int i1, int i2, int i3)
{
    return i1 + i2 + i3;
}

3. 动态分配内存

#include <iostream>

int main()
{
    double *p;
    p = new double[3];
    for(int i=0; i<3;i++)
    {
        std::cin >> *(p+i);
    }
    for (int i =0; i<3;i ++)
    {
        std::cout << *(p+i) << std::endl;
    }
    delete p;
    return 0;
}

4. 引用

#include <iostream>

int main()
{
    double d1 = 1.1;
    double &d2 = d1;
    d1 = 9.9;
    std::cout << d1 << std::endl; // Output: 9.9
    std::cout << d2 << std::endl; // Output: 9.9
    return 0;
}#
include <iostream>

int main()
{
    // 引用变量
    double d1 = 1.1;
    double &d2 = d1;
    d1 = 9.9;
    std::cout << d1 << std::endl; // Output: 9.9
    std::cout << d2 << std::endl; // Output: 9.9

    // 引用数组
    typedef double array[3];
    array a = {1, 2, 3};
    array& b = a;
    for (int i=0; i<3;i ++)
    {
        std::cout << a[i] << ','; // Output: 1,2,3,
    }
    return 0;
}

5. 类

5.1. 构造函数和析构函数

#include <iostream>

using namespace std;

struct Point {
    double x, y;

    // 构造函数
    Point() {};

    // 构造函数
    Point(double a, double b) {
        x = a;
        y = b;
    };

    void SetXY(double a, double b) {
        x = a;
        y = b;
    }

    void Display() {
        cout << x << ", " << y << endl;
    }
};

int main() {
    Point p{};
    p.SetXY(1.1, 2.2);
    p.Display(); // Output: 1.1, 2.2
    return 0;
}

6. 字符串

#include <iostream>

using namespace std;

int main() {
    // 声明
    string str1("hello world!");
    string str2 = "What are you name?";
    cout << str1 << endl; // Output: hello world!
    cout << str2 << endl; // Output: What are you name?
    // 长度
    cout << str1.size() << endl; // Output: 12
    // 截取
    cout << str1.substr(0, 3) << endl; // Output: hel
    // 查找位置
    cout << str1.find("world", 0) << endl; // Output: 6
    return 0;
}

7. 函数

默认值

#include <iostream>

using namespace std;

int sum(int a, int b = 0);

int main() {
    cout << sum(1) << endl; // Output: 1
    cout << sum(1, 2) << endl; // Output: 3
    return 0;
}

int sum(int a, int b) {
    return a + b;
}

8. 类

8.1. 构构方法与析构方法

#include <iostream>

using namespace std;


class Point {
private:
    int x, y;
public:
    // 构造方法
    Point() : x(-1), y(-1) {
        cout << "default init" << endl;
    }

    // 构造方法
    Point(int a, int b) {
        cout << "init" << endl;
        this->x = a;
        this->y = b;
    }

    void PrintInfo() const {
        cout << this->x << ", " << this->y << endl;
    }

    // 析构方法
    ~Point() {
        cout << "destroy" << endl;
    }
};

int main() {
    Point a;
    Point b(15, 25);
    a.PrintInfo();
    b.PrintInfo();
    return 0;
}

8.2. 继承

#include <iostream>

using namespace std;

class Animal {
protected:
    string name;
public:
    Animal(string name) {
        this->name = name;
    }
};

class Pig : public Animal {
protected:
    float weight;
public:
    Pig(string name, float weight) : Animal(name) {
        this->weight = weight;
    }

    void PrintInfo() {
        cout << "name: " << this->name << ", weight: " << this->weight << endl;
    }
};

int main() {
    Pig pig("佩奇", 99);
    pig.PrintInfo();
    return 0;
}

9. 类模板

#include <iostream>

using namespace std;

template<class T>
class Example {
    T x, y;
public:
    Example(T X, T Y) : x(X), y(Y) {}

    T getx() { return x; }

    T gety() { return y; }
};

int main() {
    Example<int> e(1, 2);
    cout << "x=" << e.getx() << ", y=" << e.gety() << endl; // Output: x=1, y=2

    return 0;
}

10. 运算符重载

#include <iostream>

using namespace std;

class Num {
private:
    int i;
public:
    Num(int t) {
        i = t;
    }

    Num operator+(const Num n) const {
        int t = this->i + n.i;
        Num obj(t);
        return obj;
    }

    void PrintInt() const {
        cout << this->i << endl;
    }
};

int main() {
    Num n1(1), n2(3);
    Num n3 = n1 + n2;
    n3.PrintInt(); // Output: 4

    return 0;
}

11. 参考

  • 《C++程序设计》
【实战揭秘】高胜率集合竞价抓涨停策略:融合MACD背离与斐波那契的量化模型 本文揭秘了一种高胜率集合竞价抓涨停策略,融合MACD背离与斐波那契数列的量化模型。通过量能异动、技术形态突破和资金共识形成的交叉验证,该策略在实盘中表现出色。文章详细解析了MACD背离的量化实现细节、斐波那契数列的实战应用,以及策略的量化建模过程,帮助投资者提升交易胜率。 阅读详情

相关推荐

设计数据库 ER 图太麻烦?不妨试试这两款工具,自动生成数据库 ER 图!!!

告别手动画图,提高效率~

楼下小黑哥 2万+

c++学习笔记(1)-devcpp软件安装和第一个cpp程序

windows环境参考:直接从官网下载最新版即可。

在读控制专业学习笔记 286

智能体在车联网中的应用:一份详尽到每日的100天学习路线图

这100天的旅程,是一次对毅力、学习方法和工程实践能力的综合考验。它不仅关乎掌握一系列技术点,更关乎培养解决复杂系统性问题的思维模式——将宏观的交通需求分解为微观的智能体决策,再通过多智能体协同涌现出宏观的智能行为。当你完成这份大纲时,你将拥有的不仅是一个项目作品集,更是一套应对“智能体+车联网”乃至更广泛AI+垂直领域挑战的方法论。未来已来,期待你成为构建智能交通新生态的关键贡献者。

IT深耕十余载,大道之简 1332

CPP/C++学习笔记04

主要内容:初始化列表、隐式类型转换、匿名对象、static成员、友元函数&友元类、内部类和拷贝对象时的一些编译器优化

qq_48637306的博客 507

从Android到鸿蒙:UI框架迁移的实战指南与最佳实践

本文为Android开发者提供了将应用UI框架迁移至鸿蒙系统的实战指南。文章深入对比了Android命令式编程与鸿蒙ArkUI声明式编程的核心差异,详细讲解了从环境配置、布局迁移(如RecyclerView转List)、逻辑处理到多设备适配与性能优化的全流程最佳实践,帮助开发者高效完成迁移工作。

weixin_29208077的博客 433

智能音箱开发者必看:CEVA-BX vs Cadence HiFi音频DSP实战选型指南(附功耗对比表)

本文深入对比了CEVA-BX和Cadence HiFi两大音频DSP架构在智能音箱开发中的性能差异,涵盖语音唤醒、多麦克风阵列处理等核心场景。通过实测数据和功耗对比表,为开发者提供选型参考,帮助优化产品性能和能效表现。

weixin_29309213的博客 226

UE C++学习笔记之创建组件

UE C++学习笔记之创建组件

AgilityBaby的博客 2061

如何利用gretna软件计算脑网络全局属性(聚类系数,小世界属性,最短路径),局部属性指标(度,度分布,节点效率),如何理解网络稀疏度

grena工具箱被设计用于fMRI数据的图论网络分析。它是一套MATLAB函数和基于MATLAB的接口,用于常规的fMRI预处理,用于计算和统计分析最常用的网络指标,如小世界参数、效率、度、间性、关联性、层级性、同步性和模块化。......

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9173

C++学习笔记(七)——log4cpp

C++学习笔记(七)——log4cpp log4cpp的下载与安装 1.下载log4cpp-1.1.1.tar.gz 2. 安装:先将log4cpp-1.1.1.tar.gz拖入用户主目录, 然后再执行以下步骤: $ sudo cp log4cpp-1.1.1.tar.gz /usr/local $ su # cd /usr/local # tar zxvf log4cpp-1.1.1.tar.g...

weixin_39828926的博客 519

学Simulink——基于新型动力与推进系统的场景实例:混合动力无人机的续航能力优化

通过本次 Simulink 仿真,你已掌握:✅混合动力系统架构设计✅内燃机、电机、电池联合建模✅三种能量管理策略(规则型、功率跟随、优化型)✅续航能力仿真与对比分析✅参数调优与优化方法核心收获混合动力是突破续航瓶颈的有效路径能量管理策略(EMS)决定系统效率电池SOC管理是关键Simulink 支持复杂多能源系统的协同仿真掌握混合动力无人机技术,你将具备设计长航时巡检机、应急通信平台、边境巡逻系统的能力。

xiaoheshang_123的博客 100

使用FSL对DTI数据进行预处理

在fsl官网我们可以看到是同时使用了AP和PA图像处理,采用的是最小二乘法将2个图像合并为1个图像。–inindex此处需要处理的是PA图像,在acq_param.txt中我们是把这个放在第一行的,此处为1,如果处理的是AP图像,则此处为2。为了校正磁场引起的畸变,对DTI的B0像分别采集了A>P和P>A的反向编码的两种B0像。即如果AP和PA只有1个B0像时,那么这里就是两行,如果各有3个B0像则这里应该是6行。假设转换后的图像为sub01_AP.nii.gz和sub01_PA.nii.gz。

weixin_52073820的博客 4839

CPP/C++学习笔记06

主要内容:模板

qq_48637306的博客 259

SAP MM ME21N保存前检查增强

想在ME21N保存前做一些数据检查, 可以做一个增强功能,  运行 CMOD 新增,   增强接口 输入 MM06E005  (  EXIT_SAPMM06E_012 ) ,在 NCLUDE ZXM06U43 .  里写代码功能。  例子如下: *&---------------------------------------------------------------------*

heng0757的专栏 1万+

qt/C++ 学习笔记之sapi调用文字朗读demo

【代码】qt/C++ 学习笔记之sapi调用文字朗读demo。

weixin_41447544的博客 1759

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c++学习笔记_如何run一个c++程序

#2.3 a.cpp, class A具体实现。##2.4 b.h, 声明class B及成员。##2.5 b.cpp, class B具体实现。##2.2 a.h, 声明class A及成员。##2.1 主函数文件: main.cpp。

编程驴子的博客 696

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C++ 学习笔记【基础篇】

C++ 学习笔记【基础篇】

qq_54900679的博客 2054

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++的学习笔记

C++笔记

abcooxj的博客 628

【CPP】C++学习笔记

【代码】【CPP】C++学习笔记。

mark_clemens的博客 894

[cpp]C++学习笔记-filesystem

C++11 提供的filesystem提供了丰富的文件操作的类和函数。filesystem 库是一个可一直的文件系统操作相关的库,使用POSIX标准表示文件系统的路径,支持多种操作系统平台,因此使用filesystem可以编写跨平台操作目录,文件的C++程序。

haily笔记 1万+

cpp学习笔记1

那么拷贝出的局部变量对象中的a指向的空间和被拷贝对象中的a指向的空间是相同的,所以当拷贝出的局部变量对象被使用完进行析构时就会把该指针指向的空间释放,但是被拷贝对象在程序结束后也要进行析构,这就会导致该空间被二次释放,从而引发报错。解决方案:对默认拷贝构造函数进行重写,当拷贝时分配一块新的内存来解决”拷贝出的局部变量对象中的a指向的空间和被拷贝对象中的a指向的空间是相同的“这一问题,这样引用或者指针与否就没有必要了。在继承的过程中,父亲对象中的私有成员也被继承给了儿子,只是编译器将其隐藏。

m0_73959697的博客 1268

[学习笔记] 1. C++ / CPP基础入门

C++入门知识

Le0v1n 的博客 3584

CPP/C++学习笔记05

主要内容:动态内存管理

qq_48637306的博客 446

Makefile学习笔记 - 我的CPP之路 - C++博客

Makefile学习笔记 - 我的CPP之路 - C++博客 Makefile学习笔记 - 我的CPP之路 - C++博客Makefile学习笔记Makefile学习笔记先列出一个很简单的Makefile例子:---------hd.cpp#include "hd....

135

BambuStudio学习笔记:ProjectTask.cpp

Slic3r 项目任务模块

zzzkk2009的专栏 959

C++学习笔记下载仓库

C++学习笔记下载仓库 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一个名为 c++学习笔记.pdf 的资源文件下载。该文件是关于C++编程语言的学习笔记,适合初学者和有一定基础的开发者参考和学习。 资源文件 文件名: c++学习笔记.pdf 描述: 该文件包含了详细的C++学习笔记,涵盖了从基础语法到高级编程技巧的内容。 使用方法 点击仓库中的 c+...

gitblog_06600的博客 359

CPP/C++学习笔记01

命名空间、缺省参数、函数重载、引用和内联函数

qq_48637306的博客 422
上一篇: Go json: unsupported value: NaN
下一篇: Go | 三索引切片
yimtcode
博客等级 码龄6年 205粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yimtcode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值