2017.9.21

作者: 张正戈hg | 来源:发表于2017-09-21 16:20 被阅读0次

抽象类


抽象类的一般形式

带有纯虚函数的类称为抽象类:

class  类名

{

virtual 类型 函数名(参数表)=0;

//纯虚函数

...

}


注意:

抽象类只能作为基类来使用。

不能声明抽象类的对象,只能声明抽象类的指针。

纯虚函数直到被覆盖前所派生的类均为抽象类


抽象类的作用

抽象类为抽象和设计的目的而建立,将有关的数据和行为组织在一个继承层次结构中,保证派生类具有要求的行为。

对于暂时无法实现的函数,可以声明为纯虚函数,留给派生类去实现。


使用纯虚函数时应注意:

(1)抽象类中可以有多个纯虚函数。

(2)抽象类也可以定义其他非纯虚函数。

(3)从抽象类可以派生出具体或抽象类,但不能从具体类派生出抽象类。

问题:抽象类需要有构造函数和析构函数吗?

抽象类通常代表一个抽象的概念,它提供一个继承的出发点。

在一个复杂的类继承结构中,越上层的类抽象程度越高,有时甚至无法给出某些成员函数的实现,显然,抽象类是一种特殊的类,它一般处于类继承结构的较外层。

引入抽象类的目的,主要是为了能将相关类组织在一个类继承结构中,并通过抽象类来为这些相关类提供统一的操作接口,更好的发挥多态性。

抽象类使得数据结构更加清晰,更加贴近自然


拷贝构造函数

对象的赋值:

class Student{

string name;

public:

Student(char* pName=“”){

name=pName;

}

};

Student a("jenny");

Student b;

b=a;

一个已知对象赋值给另一个已知对象。

通过对赋值运算符的重载实现的。


对象的复制(拷贝):用一个已知对象构造(初始化)一个新对象。

例:一个已知对象构造(初始化)另一对象

Student s1(“Jenny”);

Student s2=s1;即Student s2(s1);

Student fn(Student s){Student k;//.......  ;return k}

void main()

{Student m,n;n=fn(m);}

使用Student (char*  )不再合适,引入新的构造函数——拷贝构造函数:

Student (Student& s);或者是Student ( const Student& s);


相关文章

  • 2017.9.21

    热恋中的情侣,男动心,女动情。终究有别。

  • 2017.9.21

  • 2017.9.21

    今天周四了,明天过完就该休息了。从今年4月份以来公司变故开始,担惊受怕从未离开,那时候正值公司的艰难时期,创业期的...

  • 2017.9.21

    1.不低估他人的能力,不高估自己的能力。 2.坚持不懈,梦想成真。 3.性格是浑然天成的,不需要加以掩盖。发挥天性...

  • 2017.9.21

    我是这样理解的 世间之美分三种 一则 貌美 一则 心灵 三则 白富美 于美人而言,女孩子洁身自好,纯如碧玉为白 自...

  • 2017.9.21

    今日任务如下 做完增值税梦想成真选择题和综合题 财管资本成本课件复习 价值评估基础,资本成本梦想成真习题重做一遍

  • 2017.9.21

    抽象类带有纯虚函数的类称为抽象类,抽象类只能作为基类来使用。拷贝函数用一个已知对象构造一个新对象。

  • 2017.9.21

    抽象类 抽象类的一般形式 带有纯虚函数的类称为抽象类: class 类名 { virtual 类型 函数名(参数表...

  • 2017.9.21

    不是第一的我都不想要。 这样的你活得该有多累啊。

  • 2017.9.21

    刚刚吃了午饭和同事一起回住的地方,路过操场上碰到侧面走来的领导,同事立马用很甜的声音打招呼到:“xx,吃饭了没?”...

网友评论

      本文标题:2017.9.21

      本文链接:https://www.haomeiwen.com/subject/eqqtextx.html