2015-11-13 68 views
0

我試圖從名爲ÌnletConditions的類實例化變量Tt1,變量Tt0來自另一個具有對象ein_in的類。如何使用C++從另一個類的變量實例化變量

double InletConditions::Tt1 = ein_in.Tt0; 

可變Tt1被聲明爲在類InletConditions的headerfile public static double

class InletConditions { 
public: 
    static double Tt1; 
} 

可變Tt0被聲明和實例化是這樣的:

\\ file Eingabe_Konstanten.h 
class Eingabe_Konstanten { 
public: 
    static double Tt0; 
} 

\\ file Eingabe_Konstanten.cpp 
double Eingabe_Konstanten::Tt0 = io_ein.read(1); 

io_ein.read(INT)從指一種方法,其內容在從指定的行號(INT)的值文件。該值應該成爲293.15。

我該如何實現Tt1的值也變爲293.15?在輸出它只是0

int main() { 
    Eingabe_Konstanten ein; 
    InletConditions in; 
    std::cout << ein.Tt0 << endl; 
    std::cout << in.Tt1 << endl; 
} 

輸出:

293.15 
0 

我會很高興,如果有人可以幫助我,因爲我是新來的節目,不知道這個問題是什麼話題相關。

在此先感謝。

+0

假設'InletConditions'類有一個單獨的文件,將不包括''Eingabe_Konstanten.h'before InletConditions.h解決它? –

+0

不,不幸的不是。不管怎樣,謝謝你! – clemensf

回答

0

爲什麼不直接使用:

int main() { 
    Eingabe_Konstanten ein; 
    InletConditions in; 
    in.Tt1 = ein.Tt0; //You need to assign the value of ein.Tt0 to in.Tt1 here 
    std::cout << ein.Tt0 << endl; 
    std::cout << in.Tt1 << endl; 
} 
+1

'in.Tt1 = ein.Tt0;' –

+0

感謝您的回覆!這只是該計劃的一個簡單例子。由於我不想讓main()函數大到其他類,並且其他類也需要Tt1的值,所以這可能不是問題的最佳解決方案。否則這將有所幫助。 – clemensf

+0

@nh_感謝,修正 – EkcenierK

2

靜態變量指向類本身,而不是該類的特定對象。因此,你必須使用類的作用域運算符打電話給他們:

InletConditions::Tt1 = Eingabe::Tt0; 
std::cout << Eingabe::Tt0 << endl; 
std::cout << InletConditions::Tt1 << endl; 

LIVE DEMO

+0

感謝您的回覆,但這也無濟於事。輸出端仍然是'Tt1 = 0'。 – clemensf

+0

@ClemensFörster如果您在'main'中指定了變量,您將獲得所需的效果,請查看演示。 – 101010

+0

我不知道我在做什麼錯。當我將它分配給InletConditions.cpp時,它不起作用。 – clemensf

相關問題