一.C++简介
1.融合3种不同的编程方式:.c语言代表的过程性语言,C++在c语言基础上添加的面向对象的特性,C++模板支持的泛型编程.
2.自顶向下的分解结构化编程反映了过程性编程的思想。、
3.类规定了可以使用哪些数据和来表示对象和对这些数据进行哪些操作。
4.在编译c++11文件的时候,应该加上标记 -std=c++0x
g++ -std=c++0x xxx.cpp
5.main()被启动代码调用,启动代码是由编译器添加到程序中去的,是程序和操作系统之间的桥梁
一个最简单的代码:
int main()
{
return 0;
}
在大多数的系统中,main的返回值用来指示状态。返回值为0表示成功,非0的返回值的含义取决于相应的系统定义。(通常用来指出错误类型)
6.int main(void),关键字void明确指出函数不接受任何参数。(c中,让括号空着意味着对是否接受参数保持沉默)
7.关于头文件。对于c来说,头文件以.h后缀来标示。对于c++,很多的头文件被重新命名,并去掉了扩展名h,
8.声明变量:尽量在使用这个变量前声明他。
二.初识输入和输出
C++没有提供输入输出语句,它提供了一个库来实现IO机制.
库:这里最基本的就是iostream库了,提供的是标准的输入和输出.(使用的时候要#include <iostream>
)
类:其中有两个基本的类分别是istream和ostream,分别对应输入流和输出流.
对象:
*输入对象:**istream类的对象*cin,处理标准输入
*输出对象:**ostream类的对象*cout,处理标准输出.
*标准错误:**ostream的其他两个对象*cerr(警告),clog(错误消息)
练习1.5 打印两个数的积
#include <iostream>
int main()
{
int n1,n2;
std::cout<<"Enter 2 numbers:"<<std::endl;
std::cin>>n1>>n2;
std::cout<<"result:"<<n1*n2<<std::endl;
return 0;
}
1.首先看std::cout<<"Enter 2 numbers:"<<std::endl;
这句话.
我们把”<<”运算符叫做输出运算符,但是他的作用是向流写入数据.(我们形象的把这个对象看做一个流,至于底层细节暂时不管).”<<”运算符的左边需要是ostream的一个对象(这 里是cout), 右边的对象则是需要打印的值(这里 是”Enter 2 numbers:”).
最终的计算结果是我们写入了给定值的那个ostream对象.然后这个对象会返回.
这里还有一个地方需要注意的是std::cout和std::endl.在标准库中的一点名字,都是定义在std这个命名空间中的.我们使用作用域运算符”::”来取出某个命名空间中的某个名字(比如std::cout)
2.接下来来看 std::cin>>n1>>n2;
这句话
我们把”>>”运算符叫做输入运算符,但是他的作用是从流读出数据.”<<”运算符的左边需要是istream的一个对象(这里是cin), 右边的对象则是待接收数据的地方.同样返回其左侧的istream对象作为运算结果.
3.其他的类推就行.
三.基本控制
练习1.9 编写程序,使用while循环将50到100的整数相加
while版:
#include <iostream>
using namespace std;
int main()
{
int n=50;
int sum=0;
while(n<=100)
{
sum+=n;
++n;
}
cout<<"sum:"<<sum<<endl;
return 0;
}
for版:
#include <iostream>
using namespace std;
int main()
{
int sum=0;
for(int i=50;i<=100;i++)
sum+=i;
cout<<"sum:"<<sum<<endl;
return 0;
}
练习1.16 编写程序,从cin读取一组数,输出其和.
#include <iostream>
using namespace std;
int main()
{
int sum=0;
int n;
while(cin>>n)
{
sum+=n;
}
cout<<"sum"<<sum<<endl;
}
直接把cin输入的过程放在while循环中,这个表达式从标准输入中读取下一个数,保存在n中,并且知道cin>>n会返回一个istream的对象.其实这里就是cin.然后当while中把cin对象作为条件的时候,会检查流的状态.当遇到文件结束(end-of-file EOF)或者输入无效的时候,条件就会变成假,从而while循环终止.