重点阐述跟C语言区别之处
C++ 语言的特点主要表现在两个方面: 全面兼容 C 语言 和 支持面向对象的方法。
1. 命名空间
-
命名空间里面包含了逻辑结构上相互关联的一组类、函数、模板等;
-
命名空间像是一个容器,把某些在逻辑结构上相关的 “ 对象 ” 放在一起并与外界区分。
-
特别的,命名空间里的变量名或类名可以和命名空间外的变量名或类名重名。
1.1 定义
用 花括号 把声明块括起来,再以关键字 namespace 开头并命名:
namespace 命名空间的名字
{
声明块
}
声明块中可以包含变量、类、函数等。例如:
namespace S
{
int x;
void FunA()
{
...
}
}
1.2 使用
在命名空间外使用命名空间内的成员: 命名空间的名字加上作用域运算符 :: 。
参考上例 namespace S,若访问 x,可写成 S::x;访问 FunA() 则为 S::FunA()。
命名空间的嵌套, 具有分层屏蔽的作用。例如:
namespace S1
{
namespace S2
{
int x;
void FunA()
{
...
}
}
}
参考上例,若要访问 x,则可写为 S1::S2::x,同理,访问 FunA() 则可写为 S1::S2::FunA()。
2. using
2.1 声明
若命名空间内的某个成员使用了 using 声明,那么这个成员在程序的后续使用中,可直接使用成员名,无需添加限定修饰名。
使用 using 声明:
以关键字 using 开头后跟命名空间内的成员名。
参考上例嵌套的命名空间:
namespace S2 中 int x 的 using 声明为:using S1::S2::x; 。
注意:
using namespace 后不能加类名或变量名。
同上,若 namespace S2 中 int x 的 using 声明写为 using namespace S1::S2::x 便是错误的。
2.2 使用
using 指示符可以一次性地使命名空间内的全体成员被直接使用。
以关键字 using namespace 开头后跟命名空间名字。
特别的,std 命名空间声明和定义了标准 C++ 库中的所有组件,使用 using namespace std; 则可使用标准 C++ 库中的所有成员。
3. C++ 输入输出
C++ 标准 I/O 库包含 iostream、fstream 和 sstringstream。iostream、fstream 等;
sstringstream 的出现频率就低了许多,一般操作于数据的格式化。
3.1 标准输出流对象 cout
预定义的插入符 “ << ” 作用在流类对象 cout 上可实现最基本的屏幕输出,其格式为:
cout << 表达式1 << 表达式2...
在输出语句中,若串联多个插入符,则可输出多个数据项。例如:
cout << a << b << c;
则依次输出 a,b,c 三个数据项的值。
若插入符后面是复杂的表达式,则系统自动计算其表达式的值并传给插入符。例如:
cout << "a+b=" << a+b
依次输出字符串 “ a+b= ” 以及 a+b 的计算结果。
3.2 标准输入流对象 cin
预定义的提取符 “ >> ” 作用在流类对象 cin 上可实现对键盘输入的提取操作,其格式为:
cin >> 表达式1 >> 表达式2...
其中表达式通常用于存放输入值的变量。例如:
int a,b;
cin >> a >> b;
即编译执行后,输入 a 和 b 的值,a 和 b 之间使用空格分隔。如输入:1 2,则给 a 赋值为 1,b 赋值为 2。
3.3 简单的 I/O 格式控制
一般情况下,使用 cin 和 cout 进行数据的输入和输出时,会自动按照默认的格式进行处理。如若需要设定特殊的格式,可利用 C++ I/O 流类库提供的操纵符进行调整。这些操纵符可直接嵌入到输入输出语句中实现格式控制。常用的 I/O 流类库操纵符:
4. 基本的数据类型及表达式
1. 基本的数据类型
2. 区别于c:struct
-
在 C++ 语言中,可直接使用结构体名来声明变量;
在 C 语言中,不能直接使用结构体名来声明变量,需前缀 struct。
-
C++ 语言的 struct 中既可以定义成员变量又可以定义成员函数;
C 语言的 struct 中只能定义成员变量,不能定义成员函数。例如:
struct shiyanlou
{
int a;
int pri() {return a;}
}s1;
在 C++ 的编译过程中,此结构体不会出错。但若在 C 语言中,由于 int pri() {return a;}
为成员函数,会出现编译报错。
3.常量声明☆☆☆
常量声明一般有两种方式,一是使用 #define
预处理、二是使用 const
关键字。
- 使用
#define
预处理
格式:#define name value
#define PI 3.14159
#define NEWLINE '\n'
- 使用
const
关键字
格式:const type name = value
const double pi = 3.14;
const char tab = '\t';