IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++入门(上) -> 正文阅读

[C++知识库]C++入门(上)

📋 个人简介

  • 💖 作者简介:大家好,我是菀枯😜

  • 🎉 支持我:点赞👍+收藏??+留言📝

  • 💬格言:不要在低谷沉沦自己,不要在高峰上放弃努力!??

    v2-af3cfbda99d44f8eb114cc6c74c92253_720w

前言

??从今天开始我们学习C++🎉🎉🎉。众所周知,C++的语法是比较难的,它不仅兼容C语言,而且还加人了一下其他的关键字,和自己的一些语法。本篇文章呢,我会从C++最基础的内容开始一点点梳理C++的语法。首先,我们从“hello,world!”开始。

#include <iostream>

using namespace std;

int main()
{
	cout << "hello world" << endl;
    return 0;
}

对于上面一段程序呢,我提出两个问题:

  1. using namespace std 是干什么的?
  2. cout 和 endl是什么?

希望大家看完后可以知道两个问题的答案是什么

C++关键字

asmdoifreturntrycontinue
autodoubleinlineshorttypedeffor
booldynamic_castintsignedtypeidpublic
breakelselongsizeoftypenamethrow
caseenummutablestaticunionwchar_t
catchexplicitnamespacestatic_castunsigneddefault
charexportnewstructusingfriend
classexternoperatorswitchvirtualregister
constfalseprivatetemplatevoidtrue
const_castfloatprotectedthisvolatilewhile
deletegotoreinterpret_cast

namespace 空间命名

关键字介绍

??在介绍这个关键字之前,我们先来假设一个场景。

??我们需要在学校找到一个叫张伟的人,但是我们没有其他的信息,而且学校里有很多同名的人。那么我们想找到这个人是不是很困难呢? ?编程语言也是一样,当我们很多人一起做项目的时候,难免会遇到不同的人用了相同名字的变量,这个时候编译器就不知道应该使用哪一个变量而产生问题。为了解决这个问题呢,C++于是引入了namespace这个关键字。

??还是刚刚的场景,如果我们知道了张伟所在的班级,那么我们想找到他是不是会轻松很多呢,C++的表示方法就是这样:

namespace Class1 {
	int zhangwei = 1;
}

namespace Class2 {
	int zhangwei = 2;
}

??命名空间里面除了像我刚刚这样定义变量之外,函数,新的命名空间都可以在里面定义。

namespace School {
    namespace Class1{
        int zhangwei = 1;
    }
    
    int sum(int a, int b){
        return a + b;
    }
}

关键字使用

1. 加命名空间名称及作用域限定符

🍃这样我们就有了两个不同班级的张伟,但是我们该怎样去使用他呢???这个时候我们就可以用到**::(域作用限定符)**。

🍃用法:(命名空间)::(元素)

#include <stdio.h>

namespace Class1 {
	int zhangwei = 1;
}

namespace Class2 {
	int zhangwei = 2;
}

int main() {
	printf("%d\n", Class1::zhangwei);
	printf("%d\n", Class2::zhangwei);
	return 0;
}

image-20220426073521738

🍃这样我们就可以访问我们想要访问的命名空间中的元素了

2. 使用using将命名空间中的成员引入

using Class1::zhangwei;

int main() {
	printf("%d\n", zhangwei);
	printf("%d\n", Class2::zhangwei);
	return 0;
}

🍃using可以将命名空间中的元素取出来,我们在后面使用的时候,直接使用变量名。这个时候zhangwei等同于Class1::zhangwei

3.使用using namespace 命名空间名称引入

🍃上面的方法是取出命名空间的某一个元素,而这种方法是取出整个命名空间。

namespace Class1 {
	int zhangwei = 1;
    int wangwu = 2
}

using namespace Class1;

int main() {
	printf("%d\n", zhangwei);
	printf("%d\n", wangwu);
	return 0;
}

🍃这个时候,我们想使用Class1中的变量就不需要加域作用限定符了,可以直接使用变量名来使用

C++输入和输出

介绍

🐸之前的代码,我们一直在用C语言的输入输出,其实C++也有自己的输入输出:cin (标准输入)和 cout(标准输出).

#include <iostream>

using namespace std

int main()
{
	cout << "hello world" << endl;
    return 0;
}

🐸C++的输入输出是在这个标准库中,而且这些库函数的定义是在命名空间std中的,所以要使用它们,我们需要引入头文件和命名空间。

使用

🐸C++的输入输出相对于C语言来说要方便一些,我们不用去增加输入输出格式控制,它会自动识别类型,然后将值按要求输入输出

#include <iostream>

using namespace std;

int main()
{
    int a;
    char b;
    double c;
    cin >> a >> b >> c;
    cout << a << b << c << endl;
    return 0;
}

🐸cin 和 cout 使用的运算符是 >> 和 <<. 其实很直观,c代表控制台,in就是进入,然后 >> 后面就是储存值的变量。out是输出, << 就是将后面变量中的值给控制台。cout 后的endl相当于一个换行符。

函数

🎵C++的函数和C语言大体相似,只是增加了一点点东西👀

image-20220426090105122

缺省参数

什么是缺省参数

🎵缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。

void print(int a = 10){
   	cout << a << endl;
}

int main()
{
    print();             //(1)
    print(30);           //(2)
    return 0;
}
  1. 无传参时,使用默认值: 10
  2. 传参时,使用实参:30

缺省参数的分类

  • 全缺省参数

    当函数的所有参数都有对应的默认值,我们称为全缺省参数

    void print(int a = 10, int b = 20) {
    	cout << a << endl;
    	cout << b << endl;
    }
    
  • 半缺省参数

    当函数的部分参数有对应的默认值,我们称为半缺省参数

    void print(int a, int b = 10) {
    	cout << a << endl;
    	cout << b << endl;
    }
    

缺省参数的用法

  1. 有默认值的参数放在后面,无默认值的参数放到前面,且中间不能发生间隔。

    void print(int a, int b = 10, int c) {
    	cout << a << endl;
    	cout << b << endl;
    }
    

    🎵上面的例子就是错误的,如果我们给这个函数传参,编译器就不知道你的参数是传给b, 还是c的。所以b 和 c的位置需要发生交换

  2. 缺省参数不能在函数的声明和定义中同时出现,一般来说,缺省参数是放在函数的声明中。

  3. 缺省值必须为常量或者变量

函数重载

定义

俗话说的好:“一山不容二虎”。在C语言中我们无法使用两个同名的函数,为了弥补这个缺陷,在C++中引入了函数重载这个概念。

函数重载是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的**形参列表(参数个数或类型或顺序)**必须不同。

void Swap(int* a, int* b){
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

void Swap(double* a, double* b){
    double tmp = *a;
    *a = *b;
    *b = tmp;
}

上述两个名字相同,但是参数不同的两个函数就是函数重载

结语

1647941444633

欢迎各位参考与指导!!!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-02 13:24:33  更:2022-05-02 13:24:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:40:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码