✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
🌟🌟 追风赶月莫停留 🌟🌟
🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀
🌟🌟 平芜尽处是春山🌟🌟
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
🍑C++关键字
1、auto - 用于声明自动变量,可以由编译器自动推断类型。
2、break - 用于跳出当前循环或switch语句。
3、case - 用于switch语句的一个分支。
4、char - 用于声明字符型变量或函数。
5、class - 用于定义类。
6、const - 用于声明只读变量,即该变量的值不可更改。
7、constexpr - 用于定义编译时常量。
8、continue - 用于跳过循环的当前迭代。
9、default - 用于switch语句中的默认分支。
10、do - 用于do-while循环的循环体。
11、double - 用于声明双精度浮点型变量或函数。
12、else - 用于条件语句,如果条件为假,则执行else块中的代码。
13、enum - 用于声明枚举类型。
14、extern - 用于声明在别处定义的变量或函数。
15、float - 用于声明单精度浮点型变量或函数。
16、for - 用于for循环。
17、goto - 用于无条件跳转到程序中的特定位置。
18、if - 用于条件语句,根据条件的值执行不同的代码块。
19、int - 用于声明整型变量或函数。
20、long - 用于声明长整型变量或函数。
21、namespace - 用于定义命名空间,用于组织和访问相关的类、函数和变量。
22、new - 用于动态分配内存。
23、operator - 用于重载运算符。
24、private - 用于声明类的私有成员。
25、protected - 用于声明类的保护成员。
26、public - 用于声明类的公开成员。
27、register - 建议将变量存储在寄存器中,提高效率。
28、return - 用于从函数返回值。
29、short - 用于声明短整型变量或函数。
30、signed - 用于声明有符号类型变量或函数。
31、sizeof - 用于计算数据类型或对象的大小。
32、static - 用于声明静态变量,分配内存在静态存储区。
33、struct - 用于定义结构体。
34、switch - 用于条件分支语句。
35、template - 用于定义函数或类的模板。
36、this - 指向当前对象的常量指针。
37、throw - 用于抛出异常。
38、true - 布尔类型的真值。
39、try - 用于异常处理,尝试捕获异常。
40、typedef - 用于给数据类型定义别名。
41、typeid - 用于获取表达式的类型信息。
42、typename - 用于模板编程中标示模板参数是一个类型名称。
43、union - 用于定义共用
。。。。。。
目前C++常用的关键字大部分都列出来了,大家不需要一个一个的背,在以后写代码过程中,会一直用,用久了自然就熟悉了。
🍑C++命名空间
🍍命名空间的由来
C++的命名空间(namespace)是C++语言引入的一个特性,其主要目的是为了解决命名冲突和提供代码组织上的便利性。
在C++早期,随着代码库的不断扩大和功能的不断增加,程序员们经常遇到一个问题:不同库中的函数或类可能使用相同的名称。这导致在链接或运行时出现冲突,因为编译器或链接器无法区分哪个名称指的是哪个实体。
为了解决这个问题,C++引入了命名空间的概念。==命名空间是一个封装的命名环境,它可以将相关的类、函数和对象组织在一起,并给它们一个唯一的标识符。==这样,即使不同的库中有相同名称的实体,只要它们位于不同的命名空间中,就可以避免命名冲突。
命名空间的由来可以追溯到编程语言和软件开发的演进过程。随着软件规模的扩大和复杂性的增加,代码组织和管理的需求变得越来越重要。命名空间作为一种代码组织工具,使得代码更加清晰、易于理解和维护。
🍍命名空间的用法
首先C++代码编写需要写这个头文件,也就是上图所示。
上图中就是我们学习的C++第一个命名空间,也是最重要的一个命名空间。std是一个C++的重要的库的名称。
using是C++中的关键字主要作用是简化代码,提高代码的可读和维护性,通过声明命名空间和使用别名,我们可以使代码更加清晰,简洁,减少冗余和错误。
namespace也是C++中的关键字用于定义命名空间,用于组织和访问相关的类、函数和变量。
我们自己可以定义一个命名空间:
这个名字叫Computer的空间包含了加法和交换函数。
命名空间的名称可以自己随意定,符合变量的定义规则就行。
接下来我们看看用法,平常我们在c语言中直接调用这个函数就可以用了,而现在有了这个命名空间:
Add哪里报错了:
执行程序时,系统没有找到Add()这个函数。
来看命名空间是怎么用的:
从图中可以看出,是在Add前面加了两个冒号(::)再加上命名空间的名称(Computer)。
C++中,:: 是一个作用域解析运算符,它用于指定一个特定的标识符(例如变量、函数、类型等)属于哪个命名空间或类。
在这里::是指定命名空间中的元素,元素包括命名空间里的函数和各种变量。
也就是说当你想要访问命名空间中的变量和函数时,都需要这么去写。
而在开头中 :
在这里我们可以利用Computer给大家试试这个:
在这幅图中大家可以明显看到,原本我们是要利用::,才能使用Add函数,而现在,当有了
using namespace Computer,现在就可以使用Add函数了。
现在大家也应该能猜到了“using namespace Compputer;”这串代码的意思了吧。
这串代码就是打开Computer这个命名空间的意思。通俗点的意思,就是Computer是一片封闭的空间,得要有钥匙,你才能进到这个空间,而到using namespace Computer就是把这片封闭的空间公开了,任何人都可以进去。大概就是这个意思,大家可以这样简单的理解。
而“using namespace std;”就是打开std这片空间。std是C++重要的一个库,只要编写C++代码就要写上这片代码。
当然std是一个重要的库,也包含了很多函数和关键字。当你使用"using namespace std"打开这个库,这个时候你自己定义的函数或关键字不能与库里面相同,否则会报错,当然供我们基础的学习碰到的概率可以微乎不计,以后做大项目时大家多注意点就行了。
🍑C++输入和输出
🍍输入
编写C++程序是必须要写#include头文件名的还有展开std这个库,图中cin和cout也在std库中。
C++的输入cin和C语言中输入scanf还是有很大区别的,也变得更方便了。
🍍输出
大家应该可以看出,cout是C++中的输出对象和C语言中printf还是有了很大的提升,变得更方便了。其中在这里endl其实是‘\n’的作用,就是断行的意思。
总结:在C++中,cout 和 cin 是两个非常重要的对象,它们分别属于 std 命名空间中的 ostream 和 istream 类。这两个对象主要用于控制台的输入输出操作,并且可以自动识别变量的类型。
🍑C++缺省参数
🍍缺省参数的定义
在C++中,缺省参数是指在函数声明或定义时给函数的某些参数指定默认值。当调用这个函数时,如果调用者没有提供对应参数的实参,编译器将自动使用这些默认值。这有助于简化函数调用,并为函数提供更大的灵活性。
缺省参数可以在函数声明时指定,也可以在函数定义时指定,但通常推荐在函数声明时指定,以保持接口的一致性。
注意:需要注意的是,一旦某个参数有了缺省值,它后面的所有参数都必须有缺省值。这是因为在函数调用时,编译器从左到右匹配参数和实参,如果中间的某个参数使用了缺省值,那么它后面的参数也必须能够匹配上,否则会导致编译错误。
🍍缺省参数分类
上面就是正确的缺省函数的写法。
给大家看一下错误的缺省函数的写法:
在C++中缺省值只能从左边往右看,而不能从右往左看。
缺省值的规则:一旦某个参数有了缺省值,它后面的所有参数都必须有缺省值。这是因为在函数调用时,编译器从左到右匹配参数和实参,如果中间的某个参数使用了缺省值,那么它后面的参数也必须能够匹配上,否则会导致编译错误。
🍍缺省参数的用法
第一个函数没有实参,传参时使用参数的默认值
第二个函数有实参,传参时就使用指定的实参
大家应该可以从图中看明白。
接下来就是半缺省值:
如图,中间还是不能空着,不符合缺省函数书写的规则。
🍑C++重载
🍍重载的定义
在C++中,函数重载是指使用相同的函数名定义多个函数,但它们的参数列表(参数的类型、个数或顺序)必须不同。这样,编译器可以根据提供的参数来区分应该调用哪个函数。函数重载允许我们以更自然和直观的方式使用函数名,同时减少了因函数命名不同而带来的混淆。
🍍重载的规则
下面是函数重载的一些基本规则:
函数名相同:重载的函数必须具有相同的名称。
参数列表不同:重载的函数必须至少有一个参数的类型、个数或顺序不同。
返回类型不同不是重载的依据:仅仅返回类型不同不足以区分两个函数重载。
与函数模板的区别:函数模板允许对不同类型的参数进行相同的操作,而函数重载则是针对具有不同参 数列表的同名函数。
🍍重载的分类
#include <iostream>
using namespace std;
// 函数重载示例
// 第一个重载版本:接受一个字符串参数并输出它
void add(char message)
{
cout << message << endl;
}
// 第二个重载版本:接受两个整数参数
int add(int a, int b)
{
return a + b;
}
// 第三个重载版本:接受两个浮点数参数
double add(double a, double b)
{
return a + b;
}
// 第四个重载版本:接受一个整数和一个浮点数参数
double add(int a, double b)
{
return a + b;
}
int main()
{
add('a'); // 调用第一个重载版本
int cur1 = add(2, 3); // 调用第二个重载版本
double cur2 = add(2.5, 3.5); // 调用第三个重载版本
double cur3 = add(2, 3.5); // 调用第四个重载版本
cout << cur1 << endl;
cout << cur2 << endl;
cout << cur3 << endl;
return 0;
}
这里介绍了4种重载的情况,并且成功的运行了。当然重载的情况不仅仅只有这4种,根据实际情况而定。
只是想让大家明白函数重载是C++中的一个重要概念,与C语言有很大的区别,C语言中是不支持函数重载的,C++中却支持。
🍍C++支持重载的原因
主要有4个原因:
提高代码可读性:通过函数重载,我们可以使用相同的函数名来表示一系列相关但参数不同的操作。这有助于减少因不同操作而使用不同函数名所带来的命名混乱,使得代码更易于理解和维护。
增加语言表现力:函数重载允许程序员以更自然和直观的方式编写代码。例如,我们可以使用add函数来处理整数相加和浮点数相加,而无需为每种类型编写一个具有不同名称的函数。这使得代码更易于编写和阅读。
简化函数调用:当函数具有多个重载版本时,程序员可以根据需要传递不同类型的参数来调用相应的函数。这减少了编写代码时需要考虑的复杂性,使得函数调用更加简洁和直观。
类型安全:函数重载通过编译器在编译时检查参数类型来确保类型安全。如果传递给函数的参数类型与任何重载版本都不匹配,编译器将报错,从而防止了潜在的类型错误。
支持泛型编程思想:函数重载可以被视为泛型编程的一种简单形式。虽然它不如模板那样灵活和强大,但在某些情况下,函数重载提供了一种简洁的方式来处理多种数据类型。
总之,C++支持函数重载是为了提高代码的可读性、增强语言表现力、简化函数调用、确保类型安全以及支持泛型编程思想。这使得C++成为一种强大而灵活的编程语言,能够应对各种复杂的编程任务。
文章来源:https://www.toymoban.com/news/detail-842677.html
文章来源地址https://www.toymoban.com/news/detail-842677.html
到了这里,关于【c++初阶】C++入门(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!