我已经尽我所能,但找不到关于这个特定主题的太多信息。我必须获取大量变量,可能不止一个对象,并通过一组函数传递它们,所以我认为这是最好的方法。
我想将结构传递给未定义结构的类的构造函数。这可能吗?我的代码看起来像这样:
class myClass
{
protected:
double someVar;
.
.
public:
myClass(struct structName); //compiler is ok with this
myClass(); //default construct
};
struct structName
{
double someOtherVar;
.
.
};
myClass::myClass(??????) ///I don't know what goes here
{
someVar = structName.someOtherVar; ///this is what I want to do
}
编辑:我是否应该在类中声明一个结构并将该结构用作参数?
最佳答案
其实你已经全部写好了。只有 struct structName
我会使用 const struct structName &
myClass::myClass( const structName &s )
{
someVar = s.someOtherVar;
}
或者您可以将构造函数定义为
myClass::myClass( const structName &s ) : someVar( s.someOtherVar )
{
}
在这个声明中
myClass(struct structName);
struct structName
就是所谓的详细类型名称。它在定义类的命名空间中引入了一个新类型。
在您的示例中,您首先声明了结构,然后定义了它。构造函数声明不要求结构是完整类型。
关于c++ - 在 C++ 中将结构作为构造函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279810/