写在前面:学习贵在坚持。每天25page啃掉《C++ primer》这本大山书。走在编程路上的小伙伴们共勉。
完整系列
【30天学习C++ primer系列】day1:新的征程。-20160110
【30天学习C++ primer系列】day2:基础拾忆之变量和基本类型(1/2)。-20160111
知识点提要:1.输入输出、2.注释、3.控制流、4.类简介
对应内容:《C++ Primer(第五版)》【P1-P25】第一章:开始
1. 输入输出
用到iostream库,包含基本类型istream(输入流)、ostream(输出流)
4个IO对象:
(1)cin(see-in),istream对象,标准输入;
(2)cout(see-out),ostream对象,标准输出;
(3)cerr(see-err),ostream对象,输出警告和错误信息;
(4)clog(see-log),ostream对象,输出程序运行一般信息。
简单的IO代码:
std::cout << "Enter two numbers:" << std::endl;
int v1, v2;
std::cin >> v1 >> v2;
std:cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;
::为域运算符,此处使用命名空间std中的名字cout和cin,endl等。
2. 注释
C++有两种注释:
(1)单行注释 //
(2)界定符注释 /* */
注意:界定符注释不能嵌套。通常使用界定符注释的习惯是
/* 注意界定符注释不能嵌套
* 通常使用习惯
* 每行以*开头
*/
3.控制流
一般语句是顺序执行,为了实现复杂执行路径,介绍一下几种控制流语句:
(1)while (condition){
(statement)
}
例句:
while (val <= 10) {
sum += val; //将sum + val赋值给sum
++val; //将val加1
}
(2)for (initial; condition; statement) {
(statement)
}
例句:
for (int val = 1; val <= 10; ++val) {
sum += val;
}
当for后只有一句语句时,花括号可有可无。
(3)if (condition) {
(statement)
}
例句:
if (val == currval) {
++ val;
}
==是相等运算符。用来判断。
****读取数量不定的输入数据****
while (std::cin >> value)
sum += value;
注:当一个istream对象作为条件,效果是监测流状态。遇到文件结束符或无效输入时,处于无效状态的istream对象值为假。
Windows系统中,Ctrl+Z然后按Enter或Return键作为文件结束符。Unix系统或Mac OS X中,文件结束符输入用Ctrl +D。
4. 类简介
C++的特色之一就是类和对象的概念。我们所熟知的内置类型 int,char,long,double等都是类,有句话叫C++所见皆类。
举例(片段代码,不能直接运行):
#include "Sales_item.h"
int main() {
Sales_item item1, item2;
if (item1.isbn() == item2.isbn()) {
std::cout << item1 + item2 << std::endl;
}
}
从上述片段代码中简单接触类的几个特点:
(1) Sales_item类的定义包含在头文件Sales_item.h中(头文件名需与类名相同),在调用时需要用#include预处理将这段定义的代码copy到程序文件中。
(2) 类的对象定义与普通整型类对象定义一样,类比 int i 和 Sales_item item。
(3) 同类对象之间的运算与整型可以类比。只是此处"和"的概念不一样。当isbn号相同的两条销售记录相加等于册数和总销售额相加。
(4) 类的成员函数,即item1.isbn(),是定义在类中的一类方法。使用对象名来调用成员函数:item1.isbn(),其中"."是点运算符,(())是调用运算符。
5. 补充本节几个重要的名词解释
(1)数据结构(data structure):数据及其上所允许的操作的一种逻辑组合。
(2)成员函数(menber function):类定义的操作,通过调用成员函数来操作对象。
(3)命名空间(namespace):用来避免不经意的名字冲突。C++标准库定义的名字放在命名空间std中。