- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计25848.doc
第2章 面向对象程序设计
OOP即面向对象程序设计;Object__Oriented Programming
一、类与对象
传统程序设计方法是面向过程,而现在是采用面向对象,如:C就是采用结构化面向过程;其数据和处理数据的程序是分离的 C++是采用面向对象,是将数据和处理数据的函数封装到一个类中。而使用类数据变量则称为对象,在一个对象内,只有属于该对象的函数,才可以存取该对象的数据,其它函数是不能对它进行操作的,从而达到保护和隐藏的效果。
1、面向过程:(1)采用自顶向下(2)分解若干个模块(3)设计数据结构(4)设计过程或函数
2、新的程序设计范型:对象、类、继承、封装、消息等概念进行程序设计。
例如:1、用C编写的输出星号三角形程序
#include stdio.h
DoDraw(int num)
{
for(int i=0;inum;i++)
{ for(int j=0;j=i;j++)
printf(*);
printf(\n);
}
}
void main()
{ int num=5;
DoDraw(num);//函数的调用
}
2、用C++编写的输出星号三角形程序
#include iostream.h
class fun
{
public:
DoDraw(int num);
};
fun::DoDraw(int num)
{ for(int i=0;inum;i++)
{ for(int j=0;j=i;j++)
cout*;
cout\n;
}
}
void main()
{ fun as;
as.DoDraw(5);//函数的调用
}
类 Class
类是对一类客观对象的存在和行为进行抽象后的,以数据和代码共同封装为形式的描述。类是聚集类型,不是数据类型,因为它还可以定义一些能对象C语言中定义的成员数据类型和元素进行操作的函数。
A、类定义
1、面向对象过程
将数据及处理数据的相应函数“封装”到一个类中,而我们用类的对象进行
对数据的存取的过程叫面向对象过程。
2、什麽是类
类(class)是C++语言中,可由软件开发者定义的聚集类型,它不仅可以
定义一些成员数据的类型和元素,而却还可以定义一些能对这些数据进行操作
的函数,可以说,类(class)是对一类客观对象的存在和行为进行抽象后的,
以数据和代码共同封装为形式的描述。
3、类的定义
class Stack
{ private:
int i;
public:
void push(int n);
protected:
char m;
};
class是关键字,Stack是类的名字
类内有三种模式:
(1)私有模式 private
可缺省,能够却只能被本类内定义的函数所访问,如果一个类的所有成分都
是私有模式,那麽这个类的封装就成了一个绝对的黑匣子,与外界不能传递消
息与信息
(2)公共模式 public
可以被本类以内及本类对象的外部世界所访问,外部世界是通过调用其中的
函数来向类的封装传递消息的。
(3)保护模式 protected
对有些成分,我们希望在无关的外部世界面前保持私有性质,但又希望由本
类派生出的派生类能继承这些成分,而无须重复定义,这就称为保护类型,或
说,保护私有,允许继承
4、定义类时要注意以下几点
a、有类内定义的函数,如上例中的:GetPos()
有类外定义的函数,如、、、、:StePlt(),SetPos(int nPos)
其效果是一样的,但在类外定义清晰一些。
b、::双冒号叫域分辨符,用来标明其右边的函数名,说明右边函数是CMeter类
的成员函数,在不同类中定义同名函数不至于混淆。
c、类中的数据成员的数据类型,可以是任意的,但不允许对定义的数据成员进
行初始化,如:class CMeter
{ ----
private:
int m_nPos=10; 错误的
}
d、在选择字下面都属于此选择字范围,除非下面出现选择字,如果都没写选择
字,则缺省为private
e、选择字public private protected可在类中出现多次,并却前后顺序不限
f、protected与其它2个相似,但在类的继承时不同
g、一般都将类单独存放在一个文件中或将类的声明放在.h文件中,而将成员
函数的实现放在与.h文件同名的.cpp文件中,以后的Visual C++程序中都
是这样。
例:类和对
文档评论(0)