关于c++抽象类的问题 10
1、抽象类为什么不能被实例化?2、抽象类既然不能被实例化,为什么还有构造、析构函数?3、纯抽象类是否有构造、析构函数?为什么?4、纯抽象类中能不能写除纯虚函数外其他的成员...
1、抽象类为什么不能被实例化?
2、抽象类既然不能被实例化,为什么还有构造、析构函数?
3、纯抽象类是否有构造、析构函数?为什么?
4、纯抽象类中能不能写除纯虚函数外其他的成员函数或成员变量? 展开
2、抽象类既然不能被实例化,为什么还有构造、析构函数?
3、纯抽象类是否有构造、析构函数?为什么?
4、纯抽象类中能不能写除纯虚函数外其他的成员函数或成员变量? 展开
3个回答
展开全部
C++ 里设计了 “抽象类”目的是用作类似类的“基类”,给派生出的类 同类性质的东西 有同样的名字,但有不同的计算实现的方法。
例如,抽象类 叫 平面图形,它有成员函数:面积计算,周长计算,派生出的类,非抽象类:椭圆类,矩形类,三角形类等。
抽象类 作为 基类 里 面积计算,周长计算 都是 虚函数。
椭圆类,矩形类,三角形类 里 这些 虚函数 都要 重新写成 具体的 计算函数。
使用中就方便了。面积 就调 Area(), 周长 就调 Perimeter().
抽象类为什么不能被实例化 -- 语法规定不能被实例化,因为它是抽象的概念性的,没有实际意义的,里面的 虚函数 等待 重写,没实用价值。
构造、析构函数 -- 只是提供一个名字,所有派生类都可继承使用。
纯抽象类可以有构造、析构函数。
抽象类中可以有 非抽象 的 成员 变量和 函数,供 派生类 继承 使用 也可改写。
例如,抽象类 叫 平面图形,它有成员函数:面积计算,周长计算,派生出的类,非抽象类:椭圆类,矩形类,三角形类等。
抽象类 作为 基类 里 面积计算,周长计算 都是 虚函数。
椭圆类,矩形类,三角形类 里 这些 虚函数 都要 重新写成 具体的 计算函数。
使用中就方便了。面积 就调 Area(), 周长 就调 Perimeter().
抽象类为什么不能被实例化 -- 语法规定不能被实例化,因为它是抽象的概念性的,没有实际意义的,里面的 虚函数 等待 重写,没实用价值。
构造、析构函数 -- 只是提供一个名字,所有派生类都可继承使用。
纯抽象类可以有构造、析构函数。
抽象类中可以有 非抽象 的 成员 变量和 函数,供 派生类 继承 使用 也可改写。
展开全部
1、抽象类为什么不能被实例化?
语法之所以不允许抽象类实例化是因为这不符合人类的常识, 动物园有老虎狮子大象, 它们都属于"哺乳动物", 但是世界上并不是真的有"哺乳动物"这种动物, 它仅仅是人类为了分类动物而创造的"抽象概念", 并不真实存在, 因此不可以实例化..
2、抽象类既然不能被实例化,为什么还有构造、析构函数?
前面说了, 语法不允许实例化抽象类是因为不符合人类思维常识, 但是由于继承规则它必须要定义构造函数和析构函数(或者隐式定义), 这是为了提供给派生类调用的, (基类构造函数是派生类构造函数的一部分)
3、纯抽象类是否有构造、析构函数?为什么?
这个问题同上.
4、纯抽象类中能不能写除纯虚函数外其他成员函数或成员变量?
当然可以, 比如说所有的"哺乳动物"都有 DNA, 都有血液和骨骼, 这些所有哺乳动物共有的部分就是虚基类的成员变量, 所有哺乳动物共有的行为(吃饭, 拉便便)都是基类的成员函数, 只不过有些成员函数是纯虚函数, 有些则是一般的虚函数.
语法之所以不允许抽象类实例化是因为这不符合人类的常识, 动物园有老虎狮子大象, 它们都属于"哺乳动物", 但是世界上并不是真的有"哺乳动物"这种动物, 它仅仅是人类为了分类动物而创造的"抽象概念", 并不真实存在, 因此不可以实例化..
2、抽象类既然不能被实例化,为什么还有构造、析构函数?
前面说了, 语法不允许实例化抽象类是因为不符合人类思维常识, 但是由于继承规则它必须要定义构造函数和析构函数(或者隐式定义), 这是为了提供给派生类调用的, (基类构造函数是派生类构造函数的一部分)
3、纯抽象类是否有构造、析构函数?为什么?
这个问题同上.
4、纯抽象类中能不能写除纯虚函数外其他成员函数或成员变量?
当然可以, 比如说所有的"哺乳动物"都有 DNA, 都有血液和骨骼, 这些所有哺乳动物共有的部分就是虚基类的成员变量, 所有哺乳动物共有的行为(吃饭, 拉便便)都是基类的成员函数, 只不过有些成员函数是纯虚函数, 有些则是一般的虚函数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++ 里设计了 “抽象类”目的是用作类似类的“基类”,给派生出的类 同类性质的东西 有同样的名字,但有不同的计算实现的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询