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

C++相关基础概念之入门讲解(上)

1. 命名空间

C++中的命名空间(namespace)是用来避免命名冲突问题的一种机制。通过将类、函数、变量等封装在命名空间中,可以避免不同部分的代码中出现相同名称的冲突。在C++中,可以使用namespace关键字来定义命名空间。

然后我们在调用的时候可以这样:

std::cout<<"啊吧怪不啊吧"<<endl;

就是在我们使用的每一行只要使用了关于std这个命名空间里面的东西,那么就在前面加上这个,即(命名空间名字)加上::来表示。当然,我相信很多人都会觉得繁琐,我们也可以在主函数外直接将命名空间展开,PS:一般来说我们自己写的小型代码可以直接展开,但是在一些大型的项目里面听说是不允许直接展开大型的命名空间,因为这会使项目代码运行速度过慢,因为要去里面一遍遍的重复查找那些函数,变量之类的。同时会造成命名空间冲突,使代码无法正常运行。

1.1 命名空间定义

​
namespace struggle
{
    int a=10;
    
    class hash
    {
    ........
    };
}

​

现在我们创建了一个命名空间,然后在里面有一int类型的变量a,他的大小为10。然后我们可以调用他,当然,如果我们在main函数上面已经展开了这个名为struggle的命名空间,那么我们就不可以重复定义一个变量叫a,并且给他赋值为5,3,7,之类的了。

1.2 命名空间的使用

using namespace struggle;

int main()
{
    int b=a;
    hash.first....
    ........
    return 0;
}

我们来看,在这张图里面,首先在main的上方展开了这个名为struggle的命名空间,然后我们便可以直接在main里面使用a这个变量和hash这个类。

2. 输入与输出

在C++中,输入与输出分别是cin与cout,然后通过>>与<<来间隔。比如说cin>>a和cout<<a;因为有人说像水一样流入与流出,所以他们也被称为流输入与流输出。

PS:使用他们时必须包含<iostream>以及按命名空间使用方法使用std.

3. 缺省参数

3.1 缺省参数概念

缺省参数是指在函数或方法的定义中设置了默认值的参数,当调用该函数或方法时如果没有传入对应参数的值,则会使用默认值。这样设计可以简化函数调用时的语法,提高代码的灵活性和可读性。在一些编程语言中,缺省参数也被称为默认参数。

​void func(int a=1)
{
    cout<<a<<endl;
}

int main()
{    
    func();
    func(10);
    return 0;
}

​

这个代码的输出结果是先输出一个1,再输出一个10。因为在这个代码里面程序会先判断你有没有给值,如果没有的话就会使用这个缺省参数,反之则不使用这个缺省参数。

3.2 缺省参数分类

缺省参数分为全缺省参数和半缺省参数。其实也很好理解,就是在函数体里面的每一个参数都有缺省值,那就是全缺省参数

​
​
void func(int a=1,int b=1)
{
    cout<<a<<b<<endl;
}

int main()
{    
    func(10,10);
    return 0;
}

​

​

如该图中的func就是全缺省参数。

如果在函数体里面不是每一个参数都有缺省值,那就是半缺省参数

​void func(int a=1,int b)
{
    cout<<a<<b<<endl;
}

int main()
{    
    func(10,10);
    return 0;
}

如该图中的func就是半缺省参数,因为里面的b并没有缺省值。

注意:如果说一个函数有两个缺省值,那你传过去的参数也不可以低于两个。

4. 函数重载

函数重载(Function Overloading)是指在C++中允许定义多个同名函数,这些同名函数具有不同的参数列表或参数类型。在调用这些同名函数时,编译器会根据参数的数量或类型来确定调用哪个函数。

​void print(int num) {
    cout << "Printing an integer: " << num << endl;
}

void print(double num) {
    cout << "Printing a double: " << num << endl;
}

int main() {
    print(10);
    print(3.14);
    
    return 0;
}
 

​

在上面的示例中,定义了两个名为print的函数,一个接受int类型的参数,另一个接受double类型的参数。在main函数中分别调用这两个函数,根据参数类型的不同,编译器会自动选择调用对应的函数。

函数重载可以使代码更加灵活,但需要注意避免出现歧义性的情况,以确保编译器可以正确选择需要调用的函数。


http://www.kler.cn/a/585716.html

相关文章:

  • Qt QML实现弹球消砖块小游戏
  • WPF中查看PDF文件之MoonPdfLib类库
  • c++ auto关键字皮毛
  • ACL初级总结
  • 人工智能时代教育行业该如何转型:迎接挑战,塑造未来教育生态
  • 揭秘AI:机器学习与深度学习的奥秘
  • 浅谈数据分析及数据思维
  • SSM企业台账管理平台
  • NodeJS接口
  • DB-GPT-0.7版本win11安装,最新版本,安装方式变更了
  • Microsoft Excel 2024 LTSC mac v16.95 表格处理软件 支持M、Intel芯片
  • Java入职篇(1)——心态篇
  • jvm汇总
  • 基于相量测量单元(PMU)的电力系统故障分析MATLAB仿真
  • linux常用基本指令汇总
  • 散货拼柜业务痛点有哪些?货代公司如何通过散拼系统提高效率?
  • ABC 375
  • Mybaties批量操作
  • SAP BC 记一次 DBCO 链接ORACLE DBCC 连接测试突然失败的问题
  • Python中将Markdown文件转换为Word