深度探索C++对象模型(3)

深度探索C++对象模型(3),第1张

深度探索C++对象模型(3),第2张

简介
多态性是一种强大的设计机制,它允许您继承一个抽象的公共接口并封装相关类型。你需要付出的代价是额外的间接性——c++通过类的指针和引用支持多态性,这就是所谓的“面向对象”。

大家好,雷神《C++对象模型深度探索》笔记终于又和大家见面了。速度真的很慢。好了,别浪费时间了,言归正传。
本笔记主要解决几个常见问题。
1。C++支持多重继承吗?
2。结构和类的区别是什么?
3。如何设计一个面向对象的模型?

C++支持多重继承(JAVA和C#不支持多重继承)。虽然我觉得我可能永远用不到这个功能(C++是雷神的爱好),但至少我得知道它可以。典型的多重继承如下:


//iostream继承自istream和ostream。
class iostream:public istream,public ostream
{......};

struct和class有什么区别吗?VCHELP前几天也看到一个讨论这个问题的帖子。其实结构和类真的没有区别,只是我们需要知道的是什么时候用结构,什么时候用类。当然,没有严格的规定。我们通常混合使用它们。从书中的例子可以看出为什么还需要保留结构,书中给出了一个方法:


结构C_point{.......};//这是一个结构
class point
{
public:
operator c _ point(){ return _ c _ point;}
//....
private:
C _ point _ C _ point;
//....
}

这种方法叫作文。它用结构封装了对象模型的全部或部分。这样做的好处是可以在C++或者C中应用这个对象模型,因为struct封装了class的数据,所以C++和C都可以在空之间有合适的布局。

面向对象模型有一些相互关联的类型,它们被一个抽象基类封装(用来提供接口)。真正的子类都是从它派生出来的。当然,一个设计良好的对象模型还必须考虑很多细节。雷神根据自己的理解写一个面向对象的模型代码。你可以看看。有什么问题请大师指出。谢谢,托尔。

想法:我想实现一个人事管理的对象模型。雷神一直在思考人事管理的一个组件(当然最终会使用一个用C#实现的业务逻辑对象,并通过数据库控制对象与数据库的交互,通过WEB表单显示界面)。在这里,我想借用我现有的想法,用C++做一些实验。因为我们只想了解面向对象的概念,所以用面向对象的方法实现一个链表程序,没有收集信息的接口。信息mina()函数是显式给出的。

该对象模型应能实现一般的人员管理,要求具备以下功能:

创建人员信息链表
增加和删除人员信息
显示人员信息。

//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/personnel manage . CPP[

# include
# include
/base class,它是该对象模型的顶级父类
class personal
{
friend class point _ list;//用于输出链表,插入或删除人员。
Protected:
char serial _ number[15];//no .
char name[10];//name
char password[15]//password
Personnel * pointer;
人事* next _ link
public:
Personnel(char * sn,char *nm,char * pwd)
{
strcpy(serial _ number,sn);
strcpy(name,sm);
strcpy(密码,pwd);
next _ link = 0;
}
Personnel()
{
serial _ number[0]= NULL;
name[0]= NULL;
password[0]= NULL;
next _ link = 0;
}
void fill _ serial _ number(char * p _ n)
{
strcpy(serial _ number,p _ n);
}
void fill _ name(char * p _ nm)
{
strcpy(name,p _ nm);
}
void fill _ password(char * p _ pwd)
{
strcpy(password,p _ pwd);
}

virtual void addnew(){}
virtual void display()
{
cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 深度探索C++对象模型(3)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情