在派生构造函数中的某些代码块之后调用派生类中的基类构造函数[重复]

Posted

技术标签:

【中文标题】在派生构造函数中的某些代码块之后调用派生类中的基类构造函数[重复]【英文标题】:Calling a base class constructor in derived class after some code block in derived constructor [duplicate] 【发布时间】:2015-05-28 22:50:18 【问题描述】:
public class bar

   public bar(list<int> id, String x, int size, byte[] bytes)
   
     ...
   


public class Foo: Bar

    public Foo(list<int> id, String x, someEnumType y):
     base(id, x, sizeof(someEnumType), y)
    
        //some functionality
    

正如您在上面的代码中看到的,我需要在调用基类构造函数之前将 someEnumType 转换为字节数组类型。有没有办法做到这一点?比如:

public class Foo: Bar

    public Foo(list<int> id, String x, someEnumType y)
    
        //someEnumType to byte array
        base(...)

    
 

【问题讨论】:

【参考方案1】:

只需在派生类中创建一个方法并调用它....

public class bar

   public bar(list<int> id, String x, int size, byte[] bytes)
   
     ...
   


public class Foo: Bar

    public Foo(list<int> id, String x, someEnumType y):
     base(id, x, sizeof(someEnumType), Convert(y))
    
        //some functionality
    

    public static byte[] Convert(SomeEnumType type)
    
        // do convert
    

【讨论】:

你是对的..我更新了答案

以上是关于在派生构造函数中的某些代码块之后调用派生类中的基类构造函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

c++继承总结

虚函数和基类中的this指针的问题!

2017.8.23

C++如何使用派生类构造函数销毁基类中的对象

继承中的基类是不是复制到派生类?

派生类中的构造函数