我有一个要实例化到代码中的类Fluid
的类Well
。但是,当我通过Fluid fluid(/*parameters*/)
构造函数中的Well
调用它时,无法在类Well
的其他方法中使用该对象。
class Fluid {
public:
Fluid() {
// constructor
}
};
class Well {
public:
Well() {
Fluid fluid(/*parameters*/);
}
};
int main() {
Well well();
}
答案 0 :(得分:2)
我假设您想将其保存为成员变量
class Well{
public:
Well() : fluid(...parameters) { }
void SomeMethod();
private:
Fluid fluid;
};
然后您可以访问该成员
void Well::SomeMethod()
{
fluid.do_something(); // can use fluid now
}
答案 1 :(得分:1)
您的Well
必须具有Fluid
类型的成员才能在构造函数之外的其他函数中使用。
class Well{
Fluid fluid;
public:
Well() : fluid( /* parameters */ )
{
}
};
此外,如果您发布实际编译的代码,也会有所帮助。
答案 2 :(得分:0)
为了通过Well
的其他功能进行访问,您的fluid
应该是成员变量。这是一个简单的示例:
#include <iostream>
class Fluid{
public:
Fluid(){}
void splash() {std::cout << "splash" << std::endl;}
};
struct Well{
public:
Well(): fluid(/*params*/) { }
void get_water () { fluid.splash();};
private:
Fluid fluid;
};
int main(){
Well well;
well.get_water();
}
实时演示:godbolt