如何使用C ++实例化具有来自另一个类的变量的类中的变量

时间:2015-11-13 08:18:48

标签: c++

我尝试从名为Tt1的类中使用变量ÌnletConditions从另一个具有对象Tt0的类中实例化变量ein_in

double InletConditions::Tt1 = ein_in.Tt0;

变量Tt1在类public static double的标头文件中声明为InletConditions

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

如果有人能帮助我,我会很高兴,因为我是编程新手并且不知道这个问题与哪个主题相关。

提前致谢。

2 个答案:

答案 0 :(得分:2)

静态变量引用类本身,而不是该类的特定对象。因此,您必须使用类的范围解析运算符来调用它们:

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

LIVE DEMO

答案 1 :(得分: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;
}