1、c++语言概述

什么是c++

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。

C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。

c++的组成

标准的 C++ 由三个重要部分组成:

cpp三大特性

封装

把客观的事务抽象成一个类(将数据和方法打包在一起,加以权限的区分,达到保护并安全使用数据的目的)

继承

继承所表达的是类之间相关的关系,这种关系使得对象可以继承另外一类对象的特征和能力

多态

多态性可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念

ANSI 标准

ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。

由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。

环境设置

常用编译器

1、Visual Studio

微软出品,官网:https://visualstudio.microsoft.com/zh-hans/

编写HelloWorld

1、创建项目

image-20211218111704948

2、创建源文件

image-20211218111943765

image-20211218112038211

3、编写代码

#include<iostream>
using namespace std;

int main() {
	cout << "HelloWorld!" << endl;
	system("pause"); // 实现按任意键继续
	return 0;
}

4、运行代码

image-20211218112523551

注释

c++和java一样,都有单行注释和多行注释

//i input 输入 o output输出 stream流 输入输出流头文件(类似stdio.h)
#include<iostream>
//std(标准) 使用标准的命名空间
using namespace std;

/*
	这是程序的入口main函数
	每一个cpp程序里面都会有且只有一个main函数
*/
int main() {
	//输出语句
	cout << "HelloWorld!" << endl;
	system("pause");
	return 0;
}

cpp程序结构

头文件

#include; 预编译指令,引入头文件 iostream

防止头文件重复包含,在.h头文件第一行声明:#pragma once

命名空间

#include<iostream>
// 程序使用std基本命名空间,是为了可以使用cout和endl
int main(){
    std::cout << "你好" << std::endl;
    return 0;
}

在 c++中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称互相冲突性的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的 C++库时,这些标识符的命名发生冲突,标准 C++引入关键字 namespace(命名空间/名字空间/名称空间),可以更好地控制标识符的作用域。

#include <iostream>

using namespace std;
//命名空间只可以在全局范围定义,不可以在函数里面定义
namespace A{
    int a = 10;
    string test(){
        return "命名空间A的test方法";
    }
}
namespace B{
    int a = 20;
    string test(){
        return "命名空间B的test方法";
    }
}

int main(){
    // 使用作用域运算符,可以调用指定命名空间的属性或函数
    cout << A::a << endl;
    cout << A::test() << endl;
    cout << B::a << endl;
    cout << B::test() << endl;
    return 0;
}

无名命名空间

只可以在本文件内使用

#include <iostream>

using namespace std;

namespace{
    int a = 10;
}
int main(){
    cout << a << endl;

    return 0;
}

命名空间别名

#include <iostream>

using namespace std;

namespace A{
    int a = 10;
}
int main(){
    namespace B = A;
    cout << B::a << endl;

    return 0;
}

using

#include <iostream>

using namespace std;

namespace A{
    int a = 10;
}
int main(){
    //声明本文件从当前位置开始使用命名空间A
    //但是这么使用一定要注意,容易引起冲突
    using namespace A;
    //如果已经在文件中声明使用命名空间,就可以不写作用域运算符
    cout << a << endl;

    return 0;
}

main函数