一、第一个C++程序
#include<iostream>
int main(void)
{
std::cout << "hello word!" <<endl;
return 0;
}
1、编译方式
1)gcc xx.cpp -lstdc++
2)g++ xx.cpp //推荐
2、文件扩展名
1).cpp //推荐
2).cc
3).C
4).cxx
3、头文件
#include
–》C++中和I/O相关的类型、对象、函数都在在头文件中
–》C++中大多数头文件没有".h"后缀
- 注:在C++中开发中,依然可以使用标准C库的头文件,另外在C++中还提供一套不带“.h”替换版本.
#include <stdio.h> ==> #include <cstdio>
#include <stdlib.h> ==> #include <cstdlib>
#include <string.h> ==> #include <cstring>
4、C++中标准输入和输出
1)cin对象表示标准输入 //类似scanf
//从键盘读取一个int数据
int num=0;
scanf("%d",&num); //C语言
cin >> num; //C++语言
注:“>>”被称为输入(提取)操作符
//从键盘同时读取一个int和一个double数据
int i=0,double d = 0.0;
scanf("%d%lf",&i,&d); //C语言
cin >> i >> d; //C++语言
2)cout对象表示标准输出 //类似printf
//打印输出一个int数据
int num = 123;
printf("%d\n",num); //C语言
cout << num << endl; //C++语言
注:“<<”被称为输出(插入)操作符
注:“endl”表示换行和"\n"类似
//同时打印输出一个int数据和一个double
int i=100,double d=1.23;
printf("%d,%lf\n",i,d);//C语言
cout << i << ',' << d << endl;//C++语言
二、名字空间(命名空间)
1、名字空间作用
1)避免名字冲突
2)划分逻辑单元
2、定义
namespace 名字空间名{
名字空间成员1;
名字空间成员2;
...
}
注:名字空间成员可以是全局函数、全局变量、类型、名字空间.
3、名字空间成员使用
1)作用域限定操作符"::"
名字空间名::要访问的成员;
eg:
std::cout //指定访问标准名字空间里面的cout
2)名字空间指令
using namespace 名字空间名;
注:在该条指令以后的代码中,指定名字空间的成员都可见,可以直接访问,省略"名字空间名::".
eg:
using namespace std;
cout << a;//ok
3)名字空间声明
using 名字空间名::名字空间成员;
注:将名字空间中特定的一个成员引入到当前作用域,在该作用域访问这个成员就如同访问自己的局部成员
一样,可以直接访问,省略"名字空间名::"
- 举例1、spacename2.cpp
#include <iostream>
//标准名字空间指令,省略“std::”
using namespace std;
namespace ns1{
void func(void){
cout << "ns1的func" << endl;
}
}
namespace ns2{
void func(void){
cout << "ns2的func" << endl;
}
}
int main(void){
using ns1::func;//名字空间声明
func();//ns1的func
//using ns2::func;
//func();//歧义错误
using namespace ns2;//名字空间指令
func();//ns1的func,局部优先
ns2::func();//ns2的func
return 0;
}
- 举例2、spacename2.cpp
#include <iostream>
using