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

标签 c++ class struct parameters constructor

我已经尽我所能,但找不到关于这个特定主题的太多信息。我必须获取大量变量,可能不止一个对象,并通过一组函数传递它们,所以我认为这是最好的方法。

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

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/

相关文章:

c++ - 模板中定义的类型用于定义类的模板方法

c++ - 为什么我们不能创建自己的 ostream 对象

结构打印垃圾中的字符数组

objective-c - 是类结构还是结构指针

c++ - 如何加快 std::vector 访问时间

c++ - 确定字符中设置位的数量

c++ - 有没有办法修改模板装饰器中使用的静态方法中的类属性?

c++ - 在其他函数模板、参数中使用推导类型

C++ 类(组合和继承 - 头文件、类数组)

c++ - 调用cout时,如何在struct中输出常量文本?