簡體   English   中英

基類構造函數中的C ++參考

[英]C++ reference in base class constructor

我在基類構造函數中有一個邏輯。 邏輯結果必須在派生類構造函數中的臨時變量中捕獲。 有辦法嗎?

例如

class Base
{
   Base() { int temp_value = some_logic;  } 
};

class Derived : public Base
{
    Derived() { // need the temp value here.. }
};

謝謝,高古

我想我能想到的最簡單的方法就是將some_logic分離成它自己的方法...

class Base
{
    Base() { int temp_value = initializationLogic();  }
    int initializationLogic(){ return some-logic;}
};

class Derived : public Base
{
    Derived() { int temp_value_here_too = initializationLogic(); }
};

或者:

class Base 
{ 
   protected int not_so_temp_value;
   Base() { not_so_temp_value = some_logic_result;  }  
}; 

class Derived : public Base 
{ 
    Derived() { // read the not_so_temp_value member here.. } 
};

要么:

class Base 
{ 
   Base(int some_logic_result) { int temp_value = some_logic;  }  
}; 

class Derived : public Base 
{ 
    static Derived* create()
    {
       int some_logic_result = some_logic;
       return new Derived(some_logic_result);
    }
    Derived(int some_logic_result) : Base(some_logic_result)
    { // use the some_logic_result here.. } 
}; 

這是我計划使用的

class Base 
{ 
   Base(int& some_logic_result) { some_logic_result = some_logic;  }  
}; 

class Derived : public Base 
{ 
    Derived(int some_logic_result = 0) : Base(some_logic_result)
    { // use the some_logic_result here.. } 
}; 

謝謝,高古

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM