C++基础知识整理(一)

C++基础知识大全 秋招基本尘埃落定了,打算总结一下C++学习路线的相关知识,今天是第一篇:C++基础知识总结。 面向对象的三大特性: 1、封装:把客观事物抽象为类,包含自己的属性和方法。 2、继承:使用现有类的所有功能,在无需重新编写原有类的情况下对类的功能进行拓展。被继承的类成为父类或基类,继承的类成为子类或派生类。 3、多态:一种形式,多种状态,分为静态多态和动态多态。静态多态指编译时多态,如函数重载、模板;动态多态指运行时多态,特指virtual虚函数机制形成的多态。 类的访问权限:private、protected 阅读详情

  基础知识搜集整理下,以后查看复习什么的方便一点。

  1.  extern "C"使用

        主要用于混合语言编程。比如说C语言调用C++开发的DLL,由于C++语言编译后的 函数符号表是带参数类型的,而C语言编译后函数符号表是不带参数类型的。所以要想在C语言中调用C++的DLL,DLL中导出的函数必须加上extern "C".

        例:void foo(int, int )函数

        C++编译后,生成 _foo_int_int 之类的符号

        C语言编译后,生成_foo之类的符号,不带参数类型,所以C语言不支持函数重载

        有关于extern "C"的具体介绍,百度百科讲的比较详细,这里列一个链接 http://baike.baidu.com/view/2816461.htm?fromId=2814224

     2.     静态成员函数不能调用成员变量,因为不含this指针。

     3.    __cdecl 和 __stdcall

        __cdecl 是C语言函数调用约定,__stdcall 是C++函数调用约定。参数都是从右到左依次入栈,__stdcall需要在编译时就确定参数个数,因为使用该约定的函数是函数自己清栈,清栈的时候要知道参数个数。__cdecl约定的函数由调用者清栈,所以函数参数个数在编译期可以不确定,可以出现类似 int add(int a, int b, ...) 形式的函数。

     4.   数组指针和指针数组

        数组指针是一个指针,指针数组是一个数组。

        例:int a[2][2] = {{1,2}, {3,4}};

               int (*p)[2] = a;     //数组指针,只定义了一个指针p。 (*p)[0]  等价于 a[0][0], (*p)[1] 等价于 a[0][1]

               int *pp[2] ; //指针数组,[]的优先级比*的优先级高,所以先结合成p[],定义了一个指针数组,pp[0]和pp[1].

     5.   指针和引用区别

        引用是定义时就要初始化,初始化之后就不可再更改,而指针初始化之后可以更改。

        例:   int a = 5; int b = 6;

                  int &c = a;       //c是a的引用,以后c一直是a的引用,不会更改,可以理解为  int * const pp, 这个 (*pp)就等价于c;

                  int *p;              //指针可以先不初始化,只是声明

                  p = &b;           //OK,指针初始化之后还可以指向其他地址

                  c = b;              //此时c还是a的引用,只是把b的值赋给了c;该语句后,a 等于 6

c++ 基础知识整理(一) 一、头文件 1)、#define保护:为防止头文件被多重包含,文件的格式应该为  |___H__,这样写是为了保证其唯一性; 2)、内联函数: 在编译的时候,编译器会将它自动展开;所以合理的使用内联函数会提高效率;内联函数一般都是短小的,但要除for,while这类的。 有些函数即使不加了inline 也不一定会变成内联函数,这都是现在编译器优化的结果。 3)、头文件的顺序:" " 最开始 阅读详情

相关推荐

C++蓝桥杯基础知识常用整理

蓝桥杯c++知识

qq_56263094的博客 5496

C++入门知识点汇总

C++入门详解

m0_56910081的博客 4872

c++基本知识点汇总

包含了c++编程语言的基本知识点,是一个汇总性质的文件,可以很好的查缺补漏。

C++入门基础 (超详解)

C++是在C语言的基础上发展而来的一种面向对象编程语言,它在保留C语言强大功能的同时,引入了许多新的特性。比如面向对象编程(OOP):类, 封装, 继承, 多态四大件,引用(Reference)模板(Template)命名空间(Namespace)异常处理(Exception Handling)标准模板库(STL)C++在很多领域有着广泛的应用,比如游戏开发,操作系统开发,嵌入式系统开发, 数据库管理系统,图形图像处理和网络通信(QT),虚拟现实(VR)和增强现实(AR),航空航天与军工领域等等。

2301_79601095的博客 1万+

从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术

本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。

pytorch8learner的博客 197

2021年秋招面经分享·字节跳动【芯片工程师-系统架构】

前言 如果想参考本人背景情况的可见这篇概述 ============================ 正文开始 ============================== 【时间线】 7.29 字节一面 8.4 字节二面 8.11 字节三面 PS:红字表示我当时没答出来的问题,蓝字表示面试官的解答。 面经分享 一面·技术面【1小时5分钟】   面试官京腔重,聊high了所以没时间撕代码了,但是华为应该不会这样。 自我介绍; 介绍一下APB; APB中3个状态的跳转是怎么跳转的; AXI中va

qq_43132308的博客 5612

C++入门基础知识总结(2022整理)

一、C++入门基础知识之什么是C++? 1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。 PDF版、C++资料教程、C++电子书籍获取 关注微信公众号:“ C和C加加 ” 回复关键字:“ C++ ”即可领取 二、C++入门基础..

weixin_55305220的博客 2万+

神经网络:初学者指南(专业版)

神经网络是一种受生物大脑启发的计算模型,由多层互连的人工神经元组成。本文从生物神经元结构出发,介绍了感知器模型、激活函数、网络架构(输入/隐藏/输出层)等基础概念,并详细阐述了前向传播、反向传播、损失函数和优化器等核心训练机制。同时涵盖了CNN、RNN等常见架构,以及过拟合、梯度消失等关键挑战,最后概述了神经网络在计算机视觉、NLP等领域的广泛应用。全文系统性地梳理了神经网络的基础理论和实践要点,为初学者提供了清晰的学习路径。

weixin_42107409的博客 1785

C++基础知识点

一 入门 1 c++初识 1.1 书写HelloWorld 基本代码框架 #include <iostream> using namespace std; int main() { cout << "hello world" << endl; //endl为换行 system("pause"); return 0; } 注释同java 1.2 变量 变量存在的意义:方便我们管理内存空间 变量创建的语法:数据类型 变量名=变量初值 int a=10; 1.3 常

卟笑的博客 4822

《雷达入门课 》系列文章(5)线性调频连续波雷达基本原理(第1讲)

S=B/Tc,是调频斜率。这里的混频公式推导过程比较简单,具体的混频过程如果感兴趣可以看下面粗略的推导,混频的本质就是频谱搬移,分为上变频和下变频,一般我们用下变频,即差频信号,因此需要一个低通滤波器即可滤出我们所需要的信号。答案就是因为中频信号能够映射出目标的距离信息,换句话说就是目标的距离不一样,返回的时间τ也就不一样,因此中频信号的频率大小也就不一样,可以说距离和中频信号是成映射关系的。中频只是表示信号频段的程度词,不是表示信号的状态词,意思就是说中频是指信号的频率不是很高,正好处于中间的地位。

【调皮连续波】雷达技术领域知识博主 6024

混合编程实战:C#集成C++ PCL点云处理库,打造跨语言动态链接库

本文详细介绍了C#与C++混合编程实战,重点讲解如何通过动态链接库(DLL)集成C++ PCL点云处理库,实现跨语言协作。内容涵盖环境配置、PCL功能封装、C#调用DLL的完整方案,以及性能优化和错误处理等进阶技巧,帮助开发者高效处理大规模点云数据,提升工业软件开发效率。

weixin_42620913的博客 382

C++基础知识整理一

::在c++中什么意思 1、A::member就表示类A中的成员member。 2、B::member就表示类B中的成员member。 二、全局作用域符号: 全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分,例如: 1,hello world #include "pch.h" #include <iostream> using names...

一行一生 508

Codex 100个真实案例 - 用AI批量清洗Excel脏数据(10万行3分钟搞定)

每个做数据分析的人都被"脏数据"折磨过——空值、重复行、日期格式五花八门、手机号多一位少一位……手动清洗几千行就已经让人崩溃,更别提10万行了。本文将展示如何用 Codex 生成一套完整的 Python pandas 数据清洗工具,从读取Excel/CSV、识别脏数据、自动清洗、生成清洗报告,到可视化对比清洗前后的数据质量,全程自然语言驱动,10万行数据3分钟搞定!

yueyeguzhuo的专栏 88

C++基础知识学习整理一

如果每一行代码以反斜杠 inverted slash (\)结束,字符串常量可以分多行代码表示: "string expressed in \ two lines" 如果我们想让字符串使用宽字符(wchar_t),而不是窄字符(char),可以在常量的前面加前缀 L:L"This is a wide character string"宽字符通常用来存储非英语字符,比如中文字符,一个字符占两个字

wuwenyu2012的专栏 737

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

perseverance51博客 1122

【报错解决】OpenClaw 报错 FetchError: request to [https://registry.npmjs.org/](https://registry.npmjs.or

在国产基础软件与云原生生态逐步成熟的背景下,越来越多的开发者开始尝试将 Web 前端、AI 推理、系统服务等组件部署到国产操作系统与国产云环境中。我所在的项目正是这样一个场景: 我们基于 OpenClaw 构建一套云端 AI 管理平台,用于统一管理模型服务、前端控制台与后台 API。

博客 1753

C++重点基础知识整理(一)

本知识点整理参考牛客网c++面试宝典中的c++基础部分内容,并根据自己所学加以修改完善,如有问题欢迎及时指正和交流。 1、static关键字的作用 1、静态变量 在变量前加static关键字,变量就定义为一个静态变量,存储在静态存储区,在整个程序期间一直存在,全局静态变量在其他的文件中是不可见的,准确说是从定义之处开始,到文件结尾;局部静态变量作用域为局部作用域,当局部静态变量离开作用域之后并没有销毁,仍然存储在内存中,只不过我们不能再对它进行访问,直到该函数再次被调用并且值不变。 2、静态函数 在函数返回

weixin_45216055的博客 750

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C++入门基础知识笔记整理(一)

1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

ybigbear的博客 160

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C++基础知识整理二十七(练习总结 一)

isPrime(int year)调用需要先进行初始化? 一维数组指针使用的实例: 运行结果如下: 二维数组指针使用的 实例: 冒泡排序: 例子: int a[10]={0}; int *p=a; //a代表数组首元素的首地址,即p=&a[0]; 类和对象: co...

一行一生 231

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【C++二级易错题整理】历年真题及最新大纲模拟题之公共基础知识篇(一)(零基础,选择题也能35+)

写在最前   C++二级大纲规定:单项选择题40分(含公共基础知识部分10分)。而且按照最新的计算机等级考试规定:自2019年3月起,凡选择题部分得分低于20分,则直接按不合格处理。所以考生应当提高对选择题部分的重视。   而选择题中,往往出错率最高的就是公共基础知识部分,因为大部分考生把所有精力都用来复习C++,但是公共基础知识繁杂庞多,想复习也无从下手,所以很多人直接放弃公共基础知识部分的10...

Spr Chan的博客 1801

C++Primer第五版 习题答案

最近疫情严重,哪也不能去一直待在家里,正好趁着有时间,可以做一些自己喜欢的事情或者一直想做却因为没时间而搁置的事情。就想着把C++Primer这本书重新看一遍,这本书是入门必看,主要是想借着重新看一遍这本书,把自己的知识再复习整理一遍,让零散的东西形成体系,能更扎实的掌握。看的不是很快,课后的习题一题一题写完自己运行一遍也需要时间,虽然慢,但一定会写完。 这本书知...

Sakuya__的博客 1230

初识Cpp之 一、基础知识

​ C++融合了三种不同的编程方式:1、C语言代表的过程性语言,2、C++在C语言的基础上添加的类代表的面向对象语言,3、C++模板支持的泛型编程。使用C++的原因之一是为了利用其面向对象的特性。要利用这种特性,必须对标准C语言知识有较为深入的了解,因为它提供了基本类型、运算符、控制结构和语法规则。​ 面向对象编程(Object Oriented Programming, OOP)的诞生,试图让语言来满足问题的要求,其理念是设计与问题本质特性相对应的数据格式。

Shen Mu Xin's Blog 2989

C++基础知识整理

C++基础知识C语言中宏定义的理解C++运行时分为哪几个区C++中的 new 和C语言中的 malloc 的区别全局变量和静态变量static全局变量与普通的全局变量有什么区别 ?static局部变量和普通局部变量有什么区别 ?static函数与普通函数的区别stctic成员变量和static成员函数C++多态的概念 C语言中宏定义的理解 #define是C语言中提供的宏定义方法,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率 有两种常用的宏定义: (1)简单的宏定义: #d

qq_46136275的博客 2311

C++面试基础知识整理

一、 整体介绍 1 C++和C的类型安全 操作符new返回的指针类型严格与对象匹配,而不是void*; C中很多以void*为参数的函数可以改写为C++模板函数,而模板是支持类型检查的; 引入const关键字代替#define constants,它是有类型、有作用域的,而#define constants只是简单的文本替换; 一些#define宏可被改写为inline函数,结合函数的重载,可在类型安全的前提下支持多种类型,当然改写为模板也能保证类型安全; C++提供了dynamic_cast关键字,使得转

weixin_43155073的博客 6180

C++基础知识粗略整理

C++基础知识粗略整理 static关键字 用于声明静态对象

成长之路印记 343
上一篇: VS2008使用宏记录来实现自动增加注释信息(转)
下一篇: MFC的规则DLL中资源使用的问题
豆笔来巡山
博客等级 码龄18年 30粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值