构造函数(char+c+)不算参数吗
1个回答
关注
展开全部
构造函数的参数可以有多种类型,包括基本类型、自定义类型、引用类型、指针类型等,其中包括 `char` 和 `C++`,所以一个构造函数可以包含 `char` 和 `C++` 参数。构造函数的 `(char+c+)` 是一种有效的构造函数参数组合,被视为合法的构造函数参数之一。您看下
咨询记录 · 回答于2023-06-15
构造函数(char+c+)不算参数吗
构造函数的参数可以有多种类型,包括基本类型、自定义类型、引用类型、指针类型等,其中包括 `char` 和 `C++`,所以一个构造函数可以包含 `char` 和 `C++` 参数。构造函数的 `(char+c+)` 是一种有效的构造函数参数组合,被视为合法的构造函数参数之一。您看下
算参数
这个对象创建的时候调用父类无参还是有参那个啊?顺序是啥
在创建对象时,会首先调用父类的构造函数,然后再调用子类的构造函数。如果子类构造函数中没有显式调用父类构造函数,则默认调用父类的无参构造函数。如果子类构造函数中显式调用了父类的构造函数,则可以通过指定构造函数参数来调用父类的有参构造函数。需要注意的是,父类和子类构造函数的调用顺序是确定的,即父类构造函数先于子类构造函数被调用,子类构造函数的执行顺序是从上到下的。因此,如果子类构造函数中调用了父类的有参构造函数,就必须放在构造函数的第一行。举例来说,如果有一个如下所示的子类:```class SubClass : public BaseClass {public: SubClass(int value) : BaseClass(value) { // 子类的构造函数代码 }};```
在创建 `SubClass` 对象时,会依次调用以下代码:```BaseClass(); // 父类的无参构造函数BaseClass(int value); // 父类的有参构造函数,由子类构造函数调用SubClass(int value); // 子类的构造函数```如果父类没有提供无参构造函数,则在子类构造函数中必须显式调用父类的有参构造函数
题目里的derived的对象(‘B’)算有参吗,然后不应该先调用父类的那个base(char c)吗?没调用那个base(){}?
抱歉哈,我这边设备消息太多,图片着实加载不出来
21:11 1X<第4章派生与继承3课堂派.4G 0 ).答题卡提交10/20单选题(分值5.0分,难度:易)有如下程序#includeusing namespace std; class Base {protected:Base() {cout << 'A';}Base(char c) { cout << C;}};class Derived: public Base {public:Derived(char c) { cout << C;};int main() {Derived d1('B'; return 0;执行这个程序屏幕上将显示输出_A.B上一题下一题>
程序中定义了一个基类 Base 和一个派生类 Derived,其中基类有两个构造函数,一个无参构造函数和一个带一个 char 类型参数的构造函数,派生类只有一个带一个 char 类型参数的构造函数。在主函数中,创建了一个 Derived 类型的对象 d1,并传入一个字符参数 'B',因此会调用派生类的构造函数和基类的带 char 类型参数的构造函数。输出结果为 A.B,即先输出基类的构造函数的输出,再输出派生类的构造函数的输出。
可是输出A的是父类无参的构造函数啊,不是那个调用的有参的捏
在子类的构造函数中,需要显式地调用父类有参构造函数,并将参数传递给它来初始化基类部分的数据成员。如果子类的构造函数中没有显式调用父类的构造函数,则默认调用父类的无参构造函数。在这个程序中,由于子类构造函数中没有显式调用父类的构造函数,因此默认调用的是父类的无参构造函数,输出了A。
刚才弄错了
好的谢谢
没事的