在C++中将结构作为构造函数参数传递

use*_*384 2 c++ struct class

我看起来尽我所能,在这个特定主题上找不到多少.我必须获取大量变量,可能是多个对象并通过一组函数传递它们,所以我认为这是最好的方法.

我想将结构传递给未定义结构的类的构造函数.这可能吗?我的代码看起来像这样:

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
} 
Run Code Online (Sandbox Code Playgroud)

编辑:我应该在类中声明一个结构并使用该结构作为参数吗?

Vla*_*cow 6

事实上你已经写完了.而不是struct structName我会使用const struct structName &

myClass::myClass( const structName &s )
{ 
  someVar = s.someOtherVar; 
} 
Run Code Online (Sandbox Code Playgroud)

或者您可以将构造函数定义为

myClass::myClass( const structName &s ) : someVar( s.someOtherVar )
{ 
} 
Run Code Online (Sandbox Code Playgroud)

在这个宣言中

   myClass(struct structName);  
Run Code Online (Sandbox Code Playgroud)

struct structName就是所谓精心制作的名字.它在定义类的命名空间中引入了一种新类型.

在您的示例中,您首先声明了结构然后定义了它.构造函数声明不要求结构是完整类型.