抽象类不能构造完整的对象,除非用于继承 才可以 用抽象类 的构造函数,初始化抽象基类子对象 这么做是为了保证 不用 抽象类构造独立的对象。 所以C++11 虽然允许 一个构造函数借用另外一个构造函数,也不允许抽象类这么做。 C++11 以前 的标准,,,0x 属于非正式标准,不算 构造函数不可以,用于另一个构造函数的初始化
抽象类本身不可以创建对象 调用另一个构造函数本身就是创建对象 用于初始化派生类时,是构造派生类过程的一个步骤 用于同一个类,或者另一个抽象类的时候,还没有定义派生类 编译器只能断为创建新对对象。所以出错。 抽象类唯一存在的理由是,派生一个类, 继承他的(所有)接口, 只要有一个接口函数没实现 派生类依然是抽象类 抽象类的代码本身,在没有实现派生类的情况下,是毫无用途的。
抽象类不能实例化。 类还有虚函数未实现,所以无法实例化
[quote=引用 3 楼 lm_whales 的回复:] 抽象类不能构造完整的对象,除非用于继承 才可以 用抽象类 的构造函数,初始化抽象基类子对象 这么做是为了保证 不用 抽象类构造独立的对象。 所以C++11 虽然允许 一个构造函数借用另外一个构造函数,也不允许抽象类这么做。 C++11 以前 的标准,,,0x 属于非正式标准,不算 构造函数不可以,用于另一个构造函数的初始化
65,186
社区成员
250,526
社区内容
加载中
试试用AI创作助手写篇文章吧