然而,如果logTransaction是一个“普通的”虚函数(也就是不是纯虚函数),并且在Transaction中有一个实现,如果这个版本的logTransaction被调用,程序会愉快的执行下去,让你自己去理解为什么创建派生类对象的时候会调用错误的logTransaction版本。防止这个问题的唯一方法是在创建和销毁对象的时候你的构造函数和虚构函数不会去调...
1、不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化。在构造函数完成之前,被构造的对象被认为“未完全生成”。当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数,那么此时派生类的构造函数并未执行,所调用的函数(派生类的虚函数)可能操作还没有被初始化的成员,将导致...
到目前为止,被调用的函数应该只属于构造对象本身,而不是可能存在于派生类中的某个覆盖函数。那样做非常难理解。最坏的情况,在构造函数或者析构函数中直接或间接调用一个没有实现的纯虚函数会导致没有定义的行为。 Example, bad(反面示例) 代码语言:javascript 复制 classBase{public:virtualvoidf()=0;// not imp...
B.析构函数C.构造函数D.虚函数 该题目是单项选择题,请记得只要选择1个答案!正确答案 点击免费查看答案 试题上传试题纠错题目解答分析 [解析] 本题考核虚函数。在*++语言中,多态性可分为两类:编译时的多态性和运行时的多态性。编译时的多态性是通过函数重载... 更多答案...请查看上面的正确答案TAGS中...
2在C++中用来实现运行时多态性的是 A.重载函数B.析构函数C.构造函数D.虚函数 3在C++中用来实现运行时多态性的是( )。 A.重载函数B.析构函数C.构造函数D.虚函数 4在C++中用来实现运行时多态性的是 A) 重载函数 B) 析构函数C) 构造函数 D) 虚函数 5在C++中用来实现运行时多态性的是 A.重载函数...
百度试题 题目在下列函数中,不能说明为虚函数的是( ) A. 私有成员函数 B. 公有成员函数 C. 构造函数 D. 析构函数 相关知识点: 试题来源: 解析 C.构造函数 反馈 收藏
[解析] 本题考核纯虚函数的定义。纯虚函数是一种特殊的虚函数,纯虚函数是在虚函数的后面加上“=0”,表示该虚函数无函数体,并非赋值运算。纯虚函数的一般格式如下: virtual<类型><函数名>(<参数表>)=0; 在很多情况下,在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数,它的实现留给该基...
在C++中用来实现运行时多态性的是___ 。A.重载函数B.析构函数C.构造函数D.虚函数请帮忙给出正确答案和分析,谢谢!
1下面函数中,可以作为虚函数的是( )A 普通函数 B 默认构造函数 C 带参构造函数 D 析构函数29 下面的描述,正确的是( )A 虚函数是没有实现的函数 B纯虚函数在基类中给出具体的实现C 抽象类是没有纯虚函数的类 D 抽象类指针可以指向不同的派生类30 下面对友元的错误描述是( )A 关键字friend用于声明友元...
答:共同祖先基类多重拷贝容易引发同名冲突:在多层派生类中,派生类有多个直接或间接 的基类,其中有一个基类是其余某些基类的共同祖先,在访问派生类的某些成员时,会引发 同名冲突问题,所以要设置虚基类,设置虚基类保证虚基类的构造函数至多被调用一次;虚 基类的说明:虛基类的定义通过关键字virtual实现,语法形式为:class...