C++:从另一个文件"undefined reference to"中的类中的函数返回结构
c++: return struct from function in class in another file "undefined reference to"
所以,本质上,我试图创建一个非常基本的程序来计算棱镜的体积。这只是为了学习,所以我正在尝试一些不必要的高级"演习"。
这个想法是在文件"vol.cpp"中的类"vol"中调用一个函数"dims()",该函数从"cin>>"中收集维度,并将它们放入一个结构中,该结构在头文件"vol.h"中声明。然后返回该结构。然后调用"vol"中另一个名为"volume"的函数,将结构的元素作为参数,然后计算体积并返回值。
我做了很多研究和调试。我犯了很多错误,但我无法摆脱最后一个(我希望)错误。
我一直收到这个错误:
未定义对`vol::dims()'的引用
在main.cpp priv_dims = oneObject.dims();
中的第10行
请帮忙。
主.cpp代码为:
#include <iostream>
#include "vol.h"
using namespace std;
int main()
{
vol oneObject;
vol::dimensions priv_dims;
priv_dims = oneObject.dims();
double calcVolume = oneObject.volume(priv_dims.height, priv_dims.width, priv_dims.length);
cout << calcVolume;
return 0;
}
第h卷代码为:
#ifndef VOL_H
#define VOL_H
class vol
{
public:
struct dimensions
{
double length, height, width;
};
vol();
double volume(double h=5, double w=5, double l=5 );
dimensions dims();
private:
};
#endif // VOL_H
vol.cpp的代码是:
#include <iostream>
#include "vol.h"
vol::vol()
{
//ctor
}
double vol::volume(double h, double w, double l)
{
return h*w*l;
}
vol::dimensions dims()
{
vol::dimensions dims_priv;
std::cout << "Please enter length: ";
std::cin >> dims_priv.length;
std::cout << "Please enter width: ";
std::cin >> dims_priv.width;
std::cout << "Please enter height: ";
std::cin >> dims_priv.height;
return dims_priv;
}
我真的希望你能帮助我,因为钉这个功能可能会对我很有用
提前谢谢。
在vol.cpp中,此行:
vol::dimensions dims()
应该是:
vol::dimensions vol::dims()
您没有正确定义成员函数,而是将其定义为非成员函数。
更改
vol::dimensions dims()
至
vol::dimensions vol::dims()
// ~~~~~
相关文章:
- 使用不带参数的函数访问结构元素
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 链表,反向函数,数据结构
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 需要帮助将结构数组传递给函数
- 使用cpp中的结构和函数的多个学生条目
- 如何传递带有通过引用传递的结构参数的函数?
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 如何在模板类函数中分配结构值?
- 我应该在C++中将这些结构用作参数化构造函数吗?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 在结构外部调用指向函数的指针
- 函数:结构的数组
- C++错误:只能为对象和函数结构指定存储类
- 将libuv与函数结构一起使用,而不是函数回调
- 从c#调用c++函数-结构体,指针,函数指针
- 函数结构数组输入cin问题