1.1面向对象程序设计的特点
1.模块化
面向对象设计出来的程序都是由一个个的对象组成的,每一个对象既定义了数据结构,也定义了操作数据结构的方法。每一个对象都是一个完整的功能模块。
2.数据隐藏
对象的设计和对象的使用分开。
3.继承
允许从已经存在的类中继承相应的成员。
4.多态性
函数具有相同的名字但有不同的作用。
5.重载
函数可以重名,只要他们的参数个数不同或者参数类型不同即可。
1.2c++语言程序的开发
1.编辑
2.编译
3.连接
4.执行
1.3c++语言程序的结构
EG1.1 hello,world
#include<iostream>
using namespace std;
int main()
{
cout<<"hello,world<<endl;
}
说明:
(1)程序总是从main()函数开始执行
EG1.2 从键盘输入两个数,并将这两个数的差显示出来
#include<iostream>
using namespace std;
int suba_b(int a,int b)
{
int c=a-b;
return c;
}
int main()
{
int x,y;
cin>>x;
cin>>y;
int z;
z=suba_b(x,y);
cout<<"z="<<z<<endl;
return 1;
}
说明:
(1)/* 和 */以及//注释的差异
a=1;/*a=a+10;*/ a=a+100; //结果为a=101
a=1;//a=a+10;a=a+100; //结果为a=1
(2)先定义、再使用
EG1.3 定义一个类,用于对整型数据进行管理。
#include<iostream>
using namespace std;
class xint
{
private:
int x;
public:
xint(int a)//构造函数
{
x=a;
}
void setx(int a)
{
x=a;
}
int getx()
{
return x;
}
void printfx()
{
cout<<"x="<<x<<endl;
}
};
int main()
{
xint eg(10);
eg.printfx();
eg.setx(20);
int b=eg.getx();
cout<<"b="<<b<<endl;
eg.printfx();
}
在上面定义的xint类中,x是数据成员,xint()、setx()、getx()、printfx()都是成员函数,其中,xint()是特殊的成员函数,其,名字与类名相同,被称为构造函数,他是在定义对象时被自动调用的。
也就是说在构造函数的时候,函数名字必须要和类的名字相同,才能在定义对象的时候被自动调用。
运行结果:
说明:
(1)类是利用class关键字来定义的
(2)每个类都可以包含数据成员(不必须)和成员函数(不止一个)
(3)在main函数中定义的a被称为xint类的对象
(4)定义了对象之后,就可以通过第哦啊用对象中的函数完成相应的功能
疑惑
在定义main函数的时候如果用的是void的话系统会报错,要求换成int?这是必须的嘛?