C++入门基础知识

C++基础入门教程 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点击添加即可。 1.1.3 编写代码 #include<iostream> using namespace std; int main() { cout << 阅读详情

今天讲下C++的发展历程及他的几个入门的基础知识:

1.什么是C++

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度 的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。
1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语 言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语 言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程 序设计。

2.C++的发展历程

C++98
C++标准第一个版本,绝大多数编译器都支持,得到了国际标准化组织(ISO)和美国标准化 协会认可,以模板方式重写C++标准库,引入了STL(标准模板库)。
C++11
增加了许多特性,使得C++更像一种新语言,比如:正则表达式、基于范围for循环、auto 关键字、新容器、列表初始化、标准线程库等。
到现在C20也快发布了!
以上提到的这两个版本是最具意义且最重要的两个版本!

3.C++入门基础知识

1)命名空间
用以区分同名变量,函数以及类的作用域,对标识符的名称进行本地化,避免命名冲突或名称污染。
定义命名空需要使用namespace关键字,后面够命名空间的名字,然后接一对{}。
一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中!
下面举一例他基本的使用:

#include<iostream>
#include<stdlib.h>

using std::cout;
using std::cin;
using std::endl;

int cal(int a,int b)
{
	return a*b;
}

namespace N1                //定义了一个命名空间N1
{
	int cal(int a, int b)
	{
		return a + b;
	}
}

namespace N2               //定义了一个命名空间N2
{
	int cal(int a, int b)
	{
		return a - b;
	}
}

int main()
{
	int a, b;
	cout << "please input two number:"<<endl;
	cin >> a;
	cin >> b;
	cout<<"the result is:"<<cal(a, b)<<endl;
	cout<<"the result is:"<<N1::cal(a, b)<<endl;
	cout<<"the result is:"<<N2::cal(a, b)<<endl;
	system("pause");
	return 0;
}

上面的代码中可以看到首先是using std::cout…这三行,这三行就表示我现在只用C++标准库中的cout,endl,cin这三个函数。所以这个标准库的命名空间就将这些标准库函数和其他函数区分开来,命名空间相当一围墙而不是容器。在主函数中可以看到,如果直接调用cal函数的话,他会默认使用全局范围内的,则进行的是乘法;如果指定范围调用比如N1::cal()则会待用命名空间NI里的cal函数,"::" 这个符号表示作用域限定符。所以在这里命名空间就是解决了同名函数作用域的问题。

2)缺省参数
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用默认值,否则使用指定的实参,可以形象的理解缺省参数就相当于一个汽车上的备用轮胎。
缺省参数可以分为 全缺省,半缺省。
注:
1.半缺省参数必须从左往右依次来给出,不能间隔着给出
2.缺省参数不能在函数声明和定义中同时出现
3.缺省值必须是常量或者全局变量
4.C语言不支持(编译器不支持)

3)函数重载
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。

举例如下:

int Add(int left, int right) 
{ 
	return left+right; 
}
double Add(double left, double right) 
{ 
	return left+right; 
}
long Add(long left, long right) 
{ 
	return left+right; 
}
int main() { 
	Add(10, 20); 
	Add(10.0, 20.0); 
	Add(10L, 20L);
	return 0; 
}

以上就实现了同名函数实现不同类型参数的计算

但下面这两个不能构成函数重载

short Add(short left, short right)
{ 
	return left+right;
}
int Add(short left, short right) 
{ 
	return left+right; 
} 

因为他们只是函数的返回值类型不同,这并不满足函数重载!

看到这里我们应该思考个问题,为什么C语言在输出变量值的时候需要指定类型比如%d,而C++却不需要,这是因为C++里的标准库函数cout是用函数重载实现的,所以你在使用是不需要指定参数类型,它会自动调用相应类型的函数,这就是函数重载方便的一点!

4)引用
关于引用可能觉得是很神奇的神奇,其实引用不是新定义一个变量,而是给已存在的变量取了个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量公用同一块内存空间。

void test()
{
	int a = 5;
	int& r = a;
	printf("%p\n",&a);
	printf("%p\n",&ra);
}

注意:引用类型必须和引用实体是同种类型的
在这里插入图片描述
从上图中可以看到被引用变量和引用变量公用同一块内存空间,因为他们的地址相同,相对来树引用可以减小开销。
引用特性:
1.引用在定义时必须初始化
2. 一个变量可以有多个引用
3. 引用一旦引用一个实体,再不能引用其他实体

使用场景:
1.做参数

void Swap(int& left, int& right) 
{   
	int temp = left;   
	left = right;   
	right = temp; 
}

这样是会改变两个变量的值的,因为它是引用传递,他们在同一地址上,所以改变了引用变量的值,原变量的值也会跟着改变。

2.做函数返回值

int& TestRefReturn(int& a) 
{   
	a += 10;   
	return a; 
} 

这个原理同上

但是下面有个反例需要注意:

int& Add(int a, int b) 
{    
	int c = a + b;    
	return c; 
} 
int main() 
{    
	int& ret = Add(1, 2);    
	Add(3, 4);    
	cout << "Add(1, 2) is :"<< ret <<endl;   
	return 0; 
}

想想上面代码的执行结果是什么呢?
结果是7,是为什么呢?
原因是定义&ret = Add(1,2)则ret就是一个引用变量本质类似于指针,它就会指向调用Add(1,2)时开辟的那块内存空间,调用函数的过程是函数压栈,因此专门建立栈帧来存放它,虽然函数调用结束后,空间会释放,但是ret所指的那块空间并不等同于消失了,而是暂时没有被使用,所以下次Add(3,4)入栈ret就会得到结果7,当采用引用返回时c结果的生命周期不受函数调用限制,所以ret是会得到结果7的。一般不受函数限制的变量主要是全局变量和静态变量,这些都可以采用引用的方式返回。所以上面这个例子是一个比较特殊的情况。
引用和指针的区别:
语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间。
在底层实现上实际是有空间的,因为引用是按照指针方式来实现的。

引用和指针的不同点:
1.引用在定义时必须初始化,指针没有要求
2.引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体
3. 没有NULL引用,但有NULL指针
4. 在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节)
5. 引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小
6. 有多级指针,但是没有多级引用
7. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理
8. 引用比指针使用起来相对更安全c

CPP入门基础知识 1.命名空间 2.C++基本的输入输出流 3.重载(C++为什么支持重载?)  4.C++缺省参数  5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别) ——————————————————————————————————————————————————————————————————— 1.命名空间 http://blog.youkuaiyun.com/passball 阅读详情

相关推荐

深入解析DDR5 SDRAM中的CA训练模式(CATM):原理与实现

本文深入解析DDR5 SDRAM中的CA训练模式(CATM),详细探讨其工作原理与实现方法。通过分析JESD79-5标准,揭示CATM在时序校准、信号质量优化和系统稳定性方面的核心价值,并提供硬件设计考量和系统级调试技巧,帮助工程师解决高速内存系统中的信号完整性问题。

weixin_29235923的博客 384

C++基础入门学习笔记

C++基础入门 1.1 hello world #include<iostream> using namespace std; int main() { cout << "Hello world" << endl; system("pause"); return 0; } 1.2 注释 作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码 两种格式 单行注释:// 描述信息 通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明

weixin_43544679的博客 8479

基于IMX429-IMX430-IMX432-IMX437系列传感器的SLVS-MIPI桥接方案设计与实现

本文详细介绍了针对索尼IMX429、IMX430、IMX432及IMX437系列传感器的SLVS-MIPI桥接方案设计与实现。针对工业视觉、车载摄像头等应用中主流SoC仅支持MIPI接口的痛点,提出基于FPGA(如Lattice Crosslink-NX)的透传桥接方案,将传感器输出的SLVS信号无损转换为MIPI CSI-2信号,确保数据完整性与低延迟,并探讨了硬件选型、逻辑设计及多传感器兼容性等关键问题。

weixin_29230901的博客 463

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

c++

2301_76575356的博客 1万+

智能织梦:基于Rokid AR眼镜的家庭情感记忆增强系统设计与实践

本文介绍了基于Rokid AR眼镜的'智能织梦'系统,通过增强现实技术捕捉和重现家庭情感记忆。系统利用多模态传感器和轻量级情感识别模型,自动记录家庭互动中的情感峰值时刻,并生成沉浸式记忆片段。测试数据显示,该系统显著提升了家庭情感互动的频率和质量,特别适用于多代同堂家庭和记忆唤醒场景。

sre5engineer的博客 536

【scp】Windows 下scp报错 bad permissions

Windows 下使用 SSH 连接报 Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 错误问题解决 C:\Users\Administrator>scp -P 66666 D:\1111.pdf zzd@58.213.45.xx:/home/zzd/ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING:...

走在搬砖的路上! 4154

【自学C++】C++ short

/简写形式使用 short int 定义 short 变量cout

haicoder_ibai的博客 6474

软件测试 | 手把手教你如何使用 Charles 抓包工具(电脑+手机端)

软件测试 | 手把手教你如何使用 Charles 抓包工具(电脑+手机端)一、Charles简介二、Charles下载与安装三、Charles配置(1)Charles-PC端的配置如下:(2)过滤网络请求:(3)Charles抓取HTTPS请求包前置条件:(4)Charles抓取HTTPS双向认证包:关注我,免费领取学习资料 嘿。大家好,我是4U: 做过 APP 测试的同学都会接触抓包工具,通过抓包工具可以获取到客户端与服务端接口的交互数据,在实际测试APP的过程中,我们往往会发现服务端返回 的参数字段错

leboxy的博客 4153

C++入门看这一篇就够了——超详细讲解(120000多字详细讲解,涵盖C++大量知识)

C++从入门到精通

m0_65635427的博客 7万+

Go语言集成Ollama本地大模型:gollama库实战指南

在当今的AI应用开发中,大型语言模型(LLM)的集成已成为关键技术。其核心原理是通过API调用,将自然语言处理能力嵌入到各类应用中。从技术价值看,本地化部署的LLM解决了数据隐私、网络延迟和持续成本三大痛点,尤其适合处理敏感数据或对实时性要求高的场景。在工程实践中,开发者常使用专门的客户端库来简化与模型服务的交互,例如通过封装REST API、提供类型安全接口和流式处理支持,从而提升开发效率和代码健壮性。具体到Go语言生态,结合Ollama这一流行的本地大模型运行工具,可以实现完全离线、低延迟的AI功能集成

weixin_28728443的博客 605

allegro如何设置走线等长

设置走线等长!

weixin_42499230的博客 6933

【C++】Cpp入门基础知识

Cpp入门基础知识  一,命名空间     首先应该明白数据在内存中的存储位置,如下图所示;  理解域为一个代码框,一个变量的作用域为一个代码框,在主函数外定义的无框变量的作用域是全局即整个程序。 在任何一个域中都可以使用全局变量,所以应尽量减少使用全局变量,会让程序不稳定。 在不同的域可以重名定义变量,如下面的变量a,输出时使用该域中的变量。 namespace定义一个域,u

LazyFish的博客 1036

第77步 时间序列建模实战:多因素预测 vol-2(以决策树回归为例)

第77步 时间序列建模实战:多因素预测 vol-2(以决策树回归为例)

Jet4505的博客 1008

【C++】入门基础知识(上)

本篇主要围绕 C++ 中的基础知识进行讲解,主要包括命名空间、输入输出、缺省函数、函数重载等内容,希望能够给你到来帮助。

2401_87820834的博客 1391

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【C++】入门基础知识

本文介绍了C++的入门基础知识,包括程序结构、数据类型、控制结构和基本输入输出。对于初学者来说,掌握这些基本概念是学习C++的第一步。接下来,可以继续深入学习C++的面向对象特性、标准模板库(STL)等内容。通过不断的练习和项目实践,你将能够熟练运用C++进行各种软件开发。

小蜗牛的珍贵百宝箱 410

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C++基础知识1 入门基础

1.C++历史 2. C++版本更新 3. C++参考⽂档: 4. C++的应用 5.C++的第一个程序 6. 命名空间 6.1 namespace的价值 6.2 namespace的定义 6.3 命名空间使⽤ 7. C++输⼊&输出 8. 缺省参数 9. 函数重载 10. 引⽤ 10.1 引⽤的概念和定义 10.2 引⽤的特性 10.3 引用的使用 10.5 指针和引⽤的关系 11. inline 12. nullptr

Yusei_0523的博客 1263

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

weixin_55305220的博客 2万+

C++入门基础知识(一)

1979年,C++初生萌芽。在1983年的时候,正式改名为C++,本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)所创。C++既可以进行C语言的面向过程化的程序设计,也可以像Java语言面向对象(封装、继承、多态)的程序设计。它是一种中级语言,介于高级语言(自然语言)与低级语言(机器语言)之间。

文优 2735

c++入门的基础知识

有关c++的基础知识【命名空间】【输出&输入】【缺省函数】【函数重载】【引用】【内联函数】【auto关键字】【范围for循环】【指针空值nullptr】

aaa114514aaaa的博客 5683

C++入门基础知识1

C++新入门基础知识

go_bai的博客 807

C++入门基础知识介绍(一)

namespace关键词的引入、C++的输入与输出、缺省参数和函数重载。

zhang_yu_hao的博客 5988

【C++】基础知识入门篇2

当函数返回,出了函数作用域,如果返回对象还在(还没还给系统),则可以使用 引用返回,如果已经还给系统了,则必须使用传值返回。图 1 传值返回的过程图 2 传引用返回。

MOV_AH_4CH的博客 1022

从0到1入门C++编程——01 C++基础知识

本文是从0到1入门C++编程的第一小节,C++基础知识的介绍,本文中很多知识都是在C语言中学习过的,用的编程工具是Visual Studio。

西岸贤 1707
上一篇: 剑指offer_03 重建二叉树
下一篇: git的安装及linux下git的使用
Python_programer
博客等级 码龄9年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值