二、C++学习笔记——开始学习C++

二、开始学习C++

2.1 进入C++

2.1.1 main()函数

2.1.2 C++注释

// 

/* */

visual studio中,ctrl+shift+/ 是块注释,ctrl+/是行注释。

2.1.3 C++预处理器和iostream文件

2.1.3 头文件名

2.1.5 名称空间

如果使用iostream,而不是iostream.h,则应使用下面的名称空间编译指令来使iostream中的定义对程序可用

using namespace std

这叫做using编译指令。“using namespace std”使得std名称空间中的所有名称都可用。这是一种偷懒的做法,在大型项目中一个潜在的问题。更好的方法时,只是所需的名称可用,这可以通过使用using声明来实现:

using std::cout;// make cout available

using std::endl;// make endl available

using std::cin;// make cin available

用这些编译指令后,就可以直接使用cin和cout,而不必加上std::前缀。

'using std cout; cout<<" "' 等价于 'std::cout<<" "'

2.1.6 使用cout进行C++输出

1.<<  插入运算符

cout << "come up and C++ me some time"

它将字符串"come up and C++ me some time"插入到输出流中。因此,与其说程序显示了一条信息,不如说它将一个字符串插入到了输出流中。

2.运算符重载

插入运算符(<< ) 看上去就像按位左移运算符(<<), 这是一个运算符重载的例子,通过重载,同一个运算符将有不同的含义。编译器通过上下文来确定运算符的含义。C 本身也有一些运算符重载的情况。例如,&符号既表示地址运算符,又表示按位AND 运算符;* 既表示乘法,又表示对指针解除引用。这里重要的不是这些运算符的具体功能,而是同一个符号可以有多种含义,而编译器可以根据上下文来确定其含义。C++扩展了运算符重载的概念,允许为用户定义的类型(类 )重新定义运算符的含义。

3.控制符endl

cout << endl;

4.换行符\n

cout << "What's next? \n";

木书中显示用引号括起的字符串时,通常使用换行符\n,在其他情况下则使用控制符endl。一个差别 是,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);而使用“\n”不能提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示。

2.1.7 C++源代码的格式化

1.源代码中的标记和空白

 

2.2 C++语句

2.2.1 声明语句和变量

声明包含定义声明和引用声明。

2.2.2 赋值语句

在打印之前,cout 必须将整数形式的数字转换为字符串形式。另外,cout很聪明,知道carrots是一个需要转换的整数。cout的智能行为源自C++的面向对象特性。实际上, C++插 入运算符 (<<) 将根据其后的数据类型相应地调整其行为,这是一个运算符重载的例子。

 

2.3 其他C++语句

2.3.1 使用cin

与 cout—样,cin 也是一个智能对象。它可以将通过键盘输入的一系列字符(即输入)转换为接收信 息的变量能够接受的形式。在这个例子中,程序将carrots声明为一个整型变量,因此输入被转换为计算机用来存储整数的数字形式。

int carrots;

cin >> carrots;

2.3.2 使用 cout进行拼接

cout << "Now you have  "<< carrots << " carrots." << endl;

等价于:

cout << "Now you have ";

cout << carrots;

cout << " carrots";

cout << endl;

等价于(C++建议):

cout << "Now you have ";

        << carrots;

        << " carrots";

        << endl;

这是由于C++的自由格式规则将标记间的换行符和空格看作是可相互替换的。当代码行很长,限制输 出的显示风格时,这种格式规则很方便。

2.3.3 类简介

现在来看cout。它足一个ostream 类对象。ostream 类定义 (iostream 文 件的另一个成员)描述了 ostream 对象表示的数据以及可以对它执行的操作,如将数字或字符串插入到输出流中。问样,cin 是一个istream 类对象,也是在iostream 中定义的。

注意:类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体。

类描述指定了可对类对象执行的所有操作。要对特定对象执行这些允许的操作,需要给该对象发送一 条消息。例如,如果希望cout对象显示一个字符串,应向它发送一条消息,告诉它,“ 对象!显示这些内 咨 !”

C++提供了两种发送消息的方式:一种方式是使用类方法(本质上就是稍后将介绍的函数调用);另 一种方式是重新定义运算符,cin和 cout采用的就是这种方式。

2.4 函数

在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型。C++提供这种信息的方式是使用函数原型语句。函数原型之于函数就像变量声明之于变量——指出涉及的类型。

例如:double sqrt(double);// function prototype

在程序中使用sqrt()时,也必须提供原型。可以用两种方法来实现:

• 在源代码文件中输入函数原型:

• 包含头文件cmath (老系统为math.h ) ,其中定义了原型。

不要混淆函数原型函数定义。可以看出,原型只描述函数接口。也就是说,它描述的是发送给函数 的信息和返回的信息。而定义中包含了函数的代码。C 和 C++将库函数的这两项特性(原型和定义)分开了。库文件中包含了函数的编译代码,而头文件中则包含了原型。

 

2.4.1 有返回值的函数

2.4.2 无返回值的函数(函数变体)

被称为过程或子程序。C和C++中,这两种变体都称为函数

2.4.3 用户定义的函数

2.4.4 用户定义的有返回值的函数

#include<iostream>
double StoneToPound(double stone);
int main() {
	using namespace std;

	double stone;
	cout << "Stone." << endl;
	cin >> stone;

	double pound = StoneToPound(stone);
	cout << "Pound: " << pound << endl;
}
double StoneToPound(double stone) {
	return 14 * stone;
}

2.4.5 在多函数程序中使用using编译指令

可以采用另一种方法让多个函数都能够访问名称空间std, 即将编译指令放在这些函数的外面,且位于这些函数的前面。

 

2.5 总结

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值