【两周学完C++】DAY1_基本数据类型:命名空间、输入输出、数据类型(struct)

重点阐述跟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
  1. 在 C++ 语言中,可直接使用结构体名来声明变量

    在 C 语言中,不能直接使用结构体名来声明变量,需前缀 struct

  2. C++ 语言的 struct 中既可以定义成员变量又可以定义成员函数

    C 语言的 struct 中只能定义成员变量,不能定义成员函数。例如:

struct shiyanlou
{
    int a;
    int pri() {return a;}
}s1;

在 C++ 的编译过程中,此结构体不会出错。但若在 C 语言中,由于 int pri() {return a;} 为成员函数,会出现编译报错。

3.常量声明☆☆☆

常量声明一般有两种方式,一是使用 #define 预处理、二是使用 const 关键字。

  1. 使用 #define 预处理

格式:#define name value

#define PI 3.14159
#define NEWLINE '\n'
  1. 使用 const 关键字

格式:const type name = value

const double pi = 3.14;
const char tab = '\t';
4. 常量类型

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Thmos_vader/article/details/142992075
今日推荐