C++:C++入门知识总结

这篇博客总结了C++入门的基础知识,包括C++文件命名、关键字auto的使用、命名空间、输入输出、缺省参数、函数重载、引用、内联函数、C++11的范围for循环和指针空值nullptr。
摘要由CSDN通过智能技术生成

C++

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++有四大特性:抽象,封装,继承,多态。 这些特性将会在后面的博客中详细解释。

在这篇博客中主要总结一下C++入门的基础知识;

1.C++文件的命名方式

创建C++工程的文件的命名方式与C语言不同,C文件的后缀为:.c ,而C++文件的后缀为: .cpp
如下图:
在这里插入图片描述

2.C++关键字:

在C++98标准下总共有63个:

asm do if return typedef
auto double inline short typeid
bool dynamic_cast int signed typename
break else long sizeof union
case enum mutable static unsigned
catch explicit namespace static_cast using
char export new struct virtual
class extern operator switch void
const false private template volatile
const_cast float protected this wchar_t
continue for public throw while
default friend register true
delete goto reinterpret_cast try
在C++11标准下总共有73个:
auto decltype nullptr constexpr noexcept
final override sizeof… default delete
在这里着重说一个特殊的关键字: auto关键字(C++11)

在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但是并没有很普遍的使用起来。
C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得
注意: 使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。

auto的使用细则和限制:

  • auto与指针和引用结合起来使用;
    用auto声明指针类型时,用auto和auto*没有任何区别,但用auto声明引用类型时则必须加&;
  • 在同一行定义多个变量时,这些变量必须是相同的类型;
  • auto不能作为函数的参数;
  • auto不能直接用来声明数组;
  • auto不能定义类的非静态成员变量;
  • 实例化模板时不能使用auto作为模板参数

auto在实际中最常见的优势用法就是跟博客后边会讲到的C++11提供的新式for循环,还有lambda表达式等进行配合使用。

3.命名空间——namespace

使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污
,namespace关键字的出现就是针对这种问题的。

  • 命名空间定义
    定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后 接一对{} 即可,{}中即为命名空间的成员。
    注意: 一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
  • 命名空间使用
    命名空间有三种使用方式:
    • 加命名空间名称及作用域限定符;
    • 使用using将命名空间中成员引入;
    • 使用using namespace 命名空间名称引入;
namespace N
{
   
	int a;
	int b;
	int Add(int num1,num2)
	{
   
		return (num1 + num2);
	}
} 
//加命名空间名称及作用域限定符;
int main1()
{
   
	cout << N::a << endl;
	return 0;
}
//使用using将命名空间中成员引入;
using N;;b;
int main2()
{
   
	cout <<  N::a << endl;
	cout << b << endl;
	return 0;
}
//使用using namespace 命名空间名称引入;
using namespace N
int main3()
{
   
	cout <<  N:
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值