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

C++入门知识

兼容性

1. C++兼容绝大多数C语言的语法,因此只需要把 .c 后缀文件改为 .cpp 即可。 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{printf("hello world");return 0;
}
//hello world

命名空间

namespace关键字

1. 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用中,可能会导致很多冲突。
2. 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染。
3. 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接⼀对 { } 即可,{ } 中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。
4. namespace本质是定义⼀个域,创建一个命名空间域,这个域跟其他的域相互独立。
5. 不同的域可以定义同名变量,但同一个域不能定义同名变量。
6. 命名空间只能在全局域中定义,原本就是为了在全局中进行隔离。所以里面的变量、函数的生命周期都是全局的。
7. 命名空间域里面可以继续嵌套命名空间域。
8. 多个文件中可以定义同名namespace,他们会默认合并到⼀起,就像同⼀个namespace⼀样。
9. C++标准库都放在⼀个叫std(standard)的命名空间中。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
namespace hsy
{int rand = 10;//只有全局域和局部域才影响生命周期,其他的域里面的变量、函数都是全局的。
}
int main()
{printf("%p\n", rand);//00007FFD2F024D50printf("%d\n", hsy::rand);//10return 0;
}
x//局部变量的x
::x//全局变量的x
hsy::x//命名空间hsy的x
:://域作用限定符
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
namespace hsy
{namespace yhy{int rand = 2024;}namespace sbd{int rand = 2023;}
}
//命名空间域里面可以继续嵌套命名空间域。
int main()
{printf("%p\n", rand);//00007FFD2F024D50printf("%d\n", hsy::yhy::rand);//10printf("%d\n", hsy::sbd::rand);//10return 0;
}

 命名空间的使用

1. 编译查找⼀个变量的声明、定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。

2. 所以我们要使用命名空间中定义的变量、函数,有三种方式:

  1. 指定命名空间访问。
  2. using将命名空间中某个成员展开。
  3. using展开命名空间中全部成员.
#include<stdio.h>
namespace hsy
{int a = 0;int b = 1;
}int main()
{printf("%d\n", a);// 编译报错:error C2065: “a”: 未声明的标识符return 0;
}int main()
{printf("%d\n", hsy::a);// 指定命名空间访问return 0;
}using hsy::b;// using将命名空间中某个成员展开,相当于把命名空间域hsy里面的东西暴露在全局域中
int main()
{printf("%d\n", hsy::b);printf("%d\n", b);//效果相同return 0;
}using namespce hsy;// 展开命名空间中全部成员
int main()
{printf("%d\n", a);printf("%d\n", b);return 0;
}

C++输入输出

1. <iostream>头文件,是Input Output Stream 的缩写,是标准的输入、输出流库,定义了标准的输入、输出对象。

2. <<是''流插入''运算符,>>是''流提取''运算符。

3. std::cin 是 istream 类的对象,标准输入流。

4. std::cout 是 ostream 类的对象,标准输出流。

5. std::endl 是⼀个函数,流插入输出时,相当于插入⼀个换行字符加刷新缓冲区。

6. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动指定格式,C++的输入输出可以自动识别变量类型。

7. cout/cin/endl等都属于C++标准库,C++标准库都放在⼀个叫std(standard)的命名空间域中,所以要通过命名空间的使用方式去用他们。

8. ⼀般日常练习中我们可以using namespace std。(更方便)

#include <iostream>
using namespace std;
int main()
{int a = 0;cout << a << " " << 'b' << endl;std::cout << a << " " << 'b' << std::endl;return 0;
}
//0 b
//0 b

 缺省参数

1. 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时,如果没有指定实参,则采用该形参的缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省参数。
2.  全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左 依次连续缺省,不能间隔跳跃给缺省值。
3.  函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省 值。


http://www.mrgr.cn/news/56435.html

相关文章:

  • 【unity小技巧】Unity6 LTS版本安装和一些修改和新功能使用介绍
  • uploads-labs靶场刷题记录
  • RequestBody接收参数报错com.fasterxml.jackson.databind.exc.MismatchedInputException
  • 在分类内用最大最小值筛选(每个分类找出一个)
  • c++面试八股
  • PostgreSQL模板数据库template0和template1的异同点
  • 【二刷hot100】day 4
  • Python程序设计 内置模块 随机函数
  • 【C++】— 一篇文章让你认识STL
  • Git的原理和使用(六)
  • 开源医疗管理的未来:参与码良诊所管理系统,助力智能医疗
  • 中国古代数学的杰出研究成果之一 - 杨辉三角 - 怎么用go、C++进行编程解决
  • 二叉树展开为链表
  • 代码随想录算法训练营第51天|101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104.建造最大岛屿
  • 集合框架16:HashMap的使用
  • C++编程语言:抽象机制:特殊运算符(Bjarne Stroustrup)
  • 容灾与云计算概念
  • Javascript基础面试题
  • Leetcode—1114. 按序打印【简单】(多线程)
  • http作业
  • 10.22软考初级网络管理员工重点之因特网与网络互联技术
  • 红黑树(创建 插入 测试验证)
  • 深入了解Java
  • 力扣 困难 52.N皇后II
  • <a-table>行数据增加点击事件并获取点击行的数据+自定义button按事件
  • MySQL之CRUD(下)