一、 使用工具:Vistual Studio 2022
二、 第一个c++程序
//this is a simple program
//count the girth and area
#include<iostream>
using namespace std;//命名空间,解决不同空间的变量或函数名冲突问题
int main()//主函数,没有这个或者打错会导致程序无法运行
{
cout<<"Hello World!"<<endl;// cout为输出,endl为换行
double r,girth,area;
const double PI = 3.1415;
cout<<"please input radius:\n";
cin>>r;//cin为输入
girth = 2*PI*r;
area=PI*r*r;
cout<<"radius="<<r<<endl;
cout<<"girth = "<<girth<<endl;
cout<<"area = "<<area<<endl;
return 0;//返回值
}
三.补充知识
- 在 C++ 中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束
2.C语言中文网关于头文件以及命名空间的解释
C++ 是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一些新的库,增加了自己的头文件,例如:
iostream.h:用于控制台输入输出头文件。
fstream.h:用于文件操作的头文件。
complex.h:用于复数计算的头文件。
和C语言一样,C++ 头文件仍然以.h为后缀,它们所包含的类、函数、宏等都是全局范围的。后来 C++ 引入了命名空间的概念,计划重新编写库,将类、函数、宏等都统一纳入一个命名空间,这个命名空间的名字就是std。std 是standard 的缩写,意思是“标准命名空间”。
但是这时已经有很多用老式 C++开发的程序了,它们的代码中并没有使用命名空间,直接修改原来的库会带来一个很严重的后果:程序员会因为不愿花费大量时间修改老式代码而极力反抗,拒绝使用新标准的C++代码
C++ 开发人员想了一个好办法,保留原来的库和头文件,它们在 C++中可以继续使用,然后再把原来的库复制一份,在此基础上稍加修改,把类、函数、宏等纳入命名空间 std 下,就成了新版 C++标准库。
这样共存在了两份功能相似的库,使用了老式 C++ 的程序可以继续使用原来的库,新开发的程序可以使用新版的 C++ 库。
为了避免头文件重名,新版 C++ 库也对头文件的命名做了调整,去掉了后缀.h,所以老式 C++ 的iostream.h变成了iostream,fstream.h变成了fstream。而对于原来C语言的头文件,也采用同样的方法,但在每个名字前还要添加一个c字母,所以C语言的stdio.h变成了cstdio,stdlib.h变成了cstdlib。
需要注意的是,旧的 C++ 头文件是官方所反对使用的,已明确提出不再支持,但旧的C头文件仍然可以使用,以保持对C的兼容性。实际上,编译器开发商不会停止对客户现有软件提供支持,可以预计,旧的 C++ 头文件在未来数年内还是会被支持。
3.关于std和域解析操作符
命名空间的声明可以分为全局声明和main()函数内部声明,因此在内部声明的函数名出现在其他函数内仍要继续声明。
**’::’**为域解析操作符,用于指明要使用的命名空间。如
LI::bl
Wa::bl
也可以用using声明 Li::fp,它的意思是,using 声明以后的程序中如果出现了未指明命名空间的 fp,就使用 Li::fp;但是若要使用Wa定义的 fp,仍然需要 Wa::fp。如:
using LI::bl
fp=3
Wa::fp=5