当前位置: 首页 > news >正文

C++基础笔记

1. C++关键字

这个不多说,以后接触得到,但这里做个总结:

2. 命名空间

一般类型:

namespace Xianyu
{
	// 命名空间中可以定义变量/函数/类型
	int rand = 10;
	int Add(int left, int right)
	{
		return left + right;
	}
	struct Node
	{
		struct Node* next;
		int val;
	};
}

嵌套:

namespace Xianyu1
{
	int a;
	int b;

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

	namespace Xianyu2
	{
		int c;
		int d;

		int Sub(int left, int right)
		{
			return left - right;
		}
	}
}

 注意:同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间里面

3. C++输入&输出

这个暂时没啥好讲的,不过有几个点还是得提一下

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
	cout << "Hello world!!!" << endl;
	return 0;
}

1.cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件

2.cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出

3.<<是流插入运算符,>>是流提取运算符

暂时就这些吧,过一眼就行

4. 缺省参数

分为两种,全缺省和半缺省

全缺省:

using namespace std;
void Func(int a = 10, int b = 20, int c = 30)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

半缺省:

using namespace std;
void Func(int a, int b = 10, int c = 20)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

注意:

1.C++规定:声明与定义分离时,声明给缺省值,定义不给 (缺省参数不能在函数声明和定义中同时出现

2.半缺省参数必须从右往左依次来给出

5. 函数重载

这个可以这么理解:国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!”

讲几个稍微注意的点:

1.同一作用域中

2.同名函数

3.形参列表(参数个数 或 类型 或 类型顺序)不同

这里注意下第三条,可以对照下面代码观察:

a.类型不同

int Add(int left, int right)
{
	cout << "int Add(int left, int right)" << endl;
	return left + right;
}
double Add(double left, double right)
{
	cout << "double Add(double left, double right)" << endl;
	return left + right;
}

b. 参数个数不同

void f()
{
	cout << "f()" << endl;
}
void f(int a)
{
	cout << "f(int a)" << endl;
}

c. 参数类型顺序不同

void f(int a, char b)
{
	cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{
	cout << "f(char b, int a)" << endl;
}

6. 引用

7. 内联函数

8. auto关键字(C++11)

9. 基于范围的for循环(C++11)

10. 指针空值---nullptr(C++11)

...to be continu..

相关文章:

  • Matlab 汽车悬架系统动力学建模与仿真
  • Flask中使用with语句手动加载应用上下文
  • 【人工智能基础2】机器学习、深度学习总结
  • AI智能混剪工具:AnKo打造高效创作的利器!
  • How to install cangjie on Linux mint 22.1
  • [网络][tcp协议]:tcp报头
  • 深度学习篇---分类任务图像预处理模型训练
  • k8s serviceaccount在集群内指定apiserver时验证错误的问题
  • Java算法OJ(12)
  • spring boot+mybaits多条件模糊查询和分页查询
  • 《C++ Primer》学习笔记(四)
  • xcode 旧版本、历史版本下载
  • Flutter FloatingActionButton 从核心用法到高级定制
  • 人工智能技术与应用演讲(61页PPT)(文末有下载方式)
  • 【redis】reids 客户端的连接(Windows和mac)
  • GPT 1-3(速通版)
  • MySQL数据库备份工具:binlog详细操作与实战指南
  • 以太坊节点间通信机制 DEVp2p 协议
  • 大文件上传实现
  • Centos 7 升级 GCC
  • 云主机做网站永久保留网站/青岛网络科技公司排名
  • 网站关于我们怎么做/优化关键词规则
  • 泰国一家做男模的网站/深圳网站制作
  • 工程招标信息在哪看/广州seo学徒
  • 上海网站建设电/seo新站如何快速排名
  • 建筑网站源码/百度竞价排名正确解释