类的概念
1、 类的概念 (P101)
类是把变量定义和函数定义放在一起,即把数据和操作封装在一起,形成新的数据类型。
类是面向对象开发语言的一个很重要的特征。
定义类的一般格式:
class 类名
{
private:
私有的数据成员和函数;(只能由本类中的函数使用,不能被外部程序访问)
public:
公有的数据成员和函数;(既能由本类中的函数使用,也能被外部程序访问)
};
例题1
#include "stdafx.h" //这个头文件是应用程序原有的
#include "iostream.h" //这个头文件是用户自己添加的
{
public:
int long1,wide;
int calarea()
{
return long1*wide;
}
int calgirth()
{
return (long1+wide)*2;
}
};
int main(int argc, char* argv[])
{
rect rectangle;
cout<<"请输入矩形的长和宽:";
cin >> rectangle.long1 >>rectangle.wide;
cout << "矩形的面积是:"<<rectangle.calarea()<<"\n";
cout << "矩形的周长是:"<<rectangle.calgirth()<<"\n";
return 0;
}
分析:
1)、在主函数main中, rect rectangle语句相当于定义了一个rect类的对象。类定义后,知识相当于定义了一种新的数据类型,在程序中要定义具体的对象才能使用,rectangle是rect类的具体对象。
在调用对象中的数据成员时,语法规定的格式是:
对象名.数据成员名
调用对象中的函数时,语法规定的格式是:
对象名.成员函数名
2)、输入输出内容
cin >> rectangle.long1 >>rectangle.wide;
cout << "矩形的周长是:"<<rectangle.calgirth()<<"\n";
2、 微软库类MFC
微软库类提供中了一组全面的泪,包含了窗口等许多类的定义,各种类的集合构成了一个应用程序的框架结构,使编写windows应用程序变得容易。
MFC命名的惯例是类的名字同事是由C打头,成员变量使用前缀m,接着使用一个字母来指明数据类型,然后是变量的名称,所有的单词用大写字母开头。
例题2 编写windows环境下的应用程序
工程3
3、 类的继承与派生
类的成员访问限定标志公有3个:private public和protected,分别是私有的,公有的和受保护的
类的继承是指在一个已有的类的基础上建立一个新的类,已存在的类即被继承的类称为父类或者是基类,新建立的类则称为派生类或者是子类。
如 基类 鱼
派生类 墨鱼 带鱼 黄鱼等等
派生类继承了所有基类的数据成员和成员函数,这就给编程带来了极大的方便,执行相同的功能不必反复去定义,一个基类可以派生出很多派生类,每个派生类可以派生出新的派生类,从而形成了继承的层次结构。
声明派生类的一般形式是:
Class 派生类名:【继承方式】基类名
{
派生类新增的成员;
}
继承方式仍有3种:private public和protected
继承方式对应的访问权限如下所示
继承方式
|
基类成员访问权限
|
派生类访问权限
|
Public
|
Public
|
Public
|
Protected
|
Protected
| |
Private
|
不能访问
| |
Protected
|
Public
|
Protected
|
Protected
|
Protected
| |
Private
|
不能访问
| |
Private
|
Public
|
Private
|
Protected
|
Private
| |
Private
|
不能访问
|
例题3
例题1原有的类:
class rect
{
public:
int long1,wide;
int calarea()
{
return long1*wide;
}
int calgirth()
{
return (long1+wide)*2;
}
};
在例题1的基础上新增类
Class volume:public rect
{
Public:
Int high;
Int calavol()
{
Return long1*wide*high;
}
};
修改主函数main
int main(int argc, char* argv[])
{
volume volu;
cout<<"请输入长方体的长,宽和高:";
cin >> volume.long1 >>volu.wide>>volu.high;
cout << "长方体的底面积是:"<<volu.calarea()<<"\n";
cout << "长方体的体积是:"<<volu.calavol()<<"\n";
return 0;
}
转载于:https://blog.51cto.com/nxjsj/531119