在C++中传递一个结构作为构造函数参数
Passing a struct as a constructor parameter in C++
我已经尽了最大努力,但在这个特定的主题上找不到太多。我必须获取大量的变量,可能是多个对象的变量,并将它们传递给一组函数,所以我认为这是最好的方法
我想将一个结构传递给一个未定义结构的类的构造函数。这可能吗?我的代码看起来像这样:
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
}
编辑:我应该在类中声明一个结构并将该结构用作参数吗?
事实上,您已经编写了所有内容。我只会使用const struct structName &
而不是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++11 中查找和更新向量中的一个嵌套结构
- 在学习数据结构之前对STL有一个了解是好的吗?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 从另一个 cpp 文件更改结构内、映射键内的变量
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 使用完数据结构后清空数据结构是一个好习惯吗?
- 如何制作一个地图,其中的值是C++中的结构数组
- 如何将数据从一个结构链接到另一个结构
- 是否可以使用智能指针成员设置具有另一个结构的结构?
- error dllimport 函数的定义不允许在一个特定的联合中,而其他类、结构和联合将按预期导出
- std::transform 将一个结构数组复制到另一个结构数组
- C++:如何做一个链表,结构作为参数传递?
- 输入 ctrl + x 后如何再次 cin (cin<<x) 循环(cin 一个结构)
- 两个附带的类层次结构-一个好的设计模式