面向对象语言的发展
面向对象程序设计概念
出发点:
更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。
特点:
是高级语言
将客观事物看作具有属性和行为的对象
通过抽象找出同一类对象的共同属性和行为,形成类
通过类的继承于多态实现代码重用
优点:
使程序能够比较直观地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发
命名空间
namespace即“命名空间”,也称“名称空间”、“名字空间”。
命名空间是用来组织和重用代码的。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。
#include<iostream>
#include<stdio.h>
using namespace std;
namespace name1//命名空间1
{
int a = 1;
};
namespace name2//命名空间2
{
int a = 2;
};
int main()
{
printf("name1::a = %d\n",name1::a);//打印命名空间1中的a
std::cout<<"name2::a = "<<name2::a<<endl;//打印命名空间2中的a
return 0;
}
简单的C++程序
#include <iostream>//头文件
using namespace std;//命名空间
int main(int argc,char * argv[])
{
//使用std空间里的cout输出
//endl表示回车
std::cout<<"hello world"<<endl;
}
hello world程序解释
预处理:交由预处理的指令以#打头,预处理要取得头文件的所有内容并使之对当前文件可用
编译(compile)
链接(link)
C++流
标准流的设备名:
流的理解:
与C的输入输出的比较:
比printf scanf功能强大,形式简单
可以自动识别基本数据类型
采用流算子来控制格式
文件I/O也用流
流插入运算符(即重载的运算符<<)可实现流的输出
输出char* 类型的变量
#include<iostream>
using namespace std;
int main()
{
char temp[100] = "test";
cout<<temp<<endl;
return 0;
}
输出char* 类型的地址
//输出char* 类型的变量
#include<iostream>
using namespace std;
int main()
{
const char* a = "test";
cout<<"value of a is "<<a<<endl;
//要输出指针的地址要先强制类型转换成void*
cout<<"const char* a = "<<(void*)a<<endl;
}
流读取运算符(即重载的运算符>>)可实现流的输入。
流读取运算符通常会跳过输入流中的空格、tab键、换行符等等的空白字符。
当遇到输入流中的文件结束符时,流读取运算符放回0(false);否则,流读取运算符返回对调用该运算符的对象的引用。
输入一个数
//输入一个数
#include<iostream>
using namespace std;
int main()
{
int a;
cout<<"please cin:";
cin>>a;
cout<<"a = "<<a<<endl;
return 0;
}
输入多个数
//输入多个数
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a;
int b;
cout<<"please cin:";
cin>>a>>b;
cout<<"a = "<<a<<" b = "<<b<<endl;
return 0;
}