这一章的目的是为让读者能够编译简单的C++程序。主要讲了基本输入输出、控制结构和类的一些简介。
简单的C++程序:
int main() { return 0; }
当然, 这个程序神马都没做, 只是返回一个值。不过它向我们展示了如何定义一个基本的函数:
return_type function_name(parameter list)
{
function_body
}
编译程序:
我用的linux, 所以
$ g++ –Wall prog1.cc –o prog1
运行程序
$ ./prog1
基本输入输出:
和C一样, C++本身不提供进行输入输出的任何语句,输入输出主要由标准库实现。
流: 流是指要从某种IO设备上读入或者写出的字符序列
基本输入输出对象 cin、cout、cerr、clog.
#include <iostream> int main() { std::out << "Enter two numbers:" << std::endl; int v1, v2; std::cin >> v1 >> v2; // Input two numbers to the cin stream std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl; return 0; }
std是一个命名空间的名称,就像一个班级一样。比如你在的班级是1班,你们班有个人叫张明,是校篮球中锋。
可是3班也有个人叫张明,他篮球也玩的很好,是校队控卫。这时候如果你们学校比赛,你们教练会对你说:
去吧那3班的张明叫来,让他控球。对,这个1班和3班就是一个命名空间,std也是的。而张明,还有你班上的
其他同学,都是这个班级的对象,每个对象完成一个特定的功能。比如3班的张明负责控球,而1班的张明负责
防守篮板等。同样的,std空间里面的对象cin, cout分别负责从读入流,把结果输出到流,endl的功能就像
我们按下一个回车键一样,会换行(当然还会把光标置于行首).
控制语句
while, for, if --和C一样, 不扯了。
读入未知数目的输入: 这里得用到一个概念叫文件结束符EOF(End Of File),你可以理解为你一直敲键盘,直到
不想继续输入了为止。windows下键入ctrl+z, 类unix中键入ctrl+d都可以实现文件结束符的输入。
while (std::cin >> value) // C++中的一般实现
while ( (c = getchar()) != EOF) // C中,如果把c定义成char,这个语句可能会很危险, 详见
// 《c traps and pitfalls》
类--C++焦点
使用类时要注意:
1. 类名?
2. 类在哪里定义?
3. 类支持什么操作?
类(class), 从字面上理解,是一个一个分类,但是我们对自然的是怎么分类的呢?根据不同的标准,我们有不同分类,
比如我们要区别生物,那么我们可以分为动物类,植物类等等。动物就是生物的一个分类(动物细胞只有细胞膜,没有细胞壁)
类在哪里定义? 上面的类是在生物界定义,我们似乎无法将计算机归结为两者之中的任何一类。
类支持什么操作?动物大多会移动~~~ 植物一般不会大范围移动(好勉强的解释==!)
#inlcude <iostream> #include "Sales_item.h" //这个就是我们所要用的类定义的地方啦 int main() { Sales_item total, trans; if (std::cin >> total) { // 一直输入直到遇见EOF或者无效的输入 while (std::cin >> trans) if (total.same_isbn(trans)) total = total + trans; else { std::cout << total << std::endl; total = trans; } std::cout << total << std::endl; } else { std::cout << "No data?!" << std::endl; return -1; } return 0; }
重点概念:
buffer 一段用来存放数据的存储区,由于外设设备速度远低于CPU,如果CPU一直监视外设设备的数据输入输出是个很浪费资源
的事。于是就开辟了这么一个缓冲区,等到缓冲区满时一次性输入输出,这样就很省CPU资源了。就像你一般都要把把
一张纸写满了再给老师看,而不是写一个字就给老师看看这个字写的对不对。当然,如果你写到一半,老师就想要看,
这时候你就得把这张纸交上去给老师,然后再准备一张纸写。这个类似的过程在计算机中叫做刷新缓冲区,即把缓冲区
的内容强制输出,并清空缓冲区。
built-in type 内置类型,是C++语言本身的一部分,如int, char等,而类就不是了。
流:
uninitialized variable 未初始化变量,初始化有直接初始化和复制初始化两种,第一种功能更为强大。
指针初始化? int *p = p; ?
标准输入:和程序执行窗口相关联的输入流.windows下是command.exe, linux下是terminal
标准输出:和程序执行窗口相关联的输出流.windows下是command.exe, linux下是terminal
原文链接: https://www.cnblogs.com/NotGeek/archive/2011/08/27/2155831.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/31284
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!