c++中结构初始化错误
struct initialization in c++ error
我是c++的新手,我在visual studio c++中运行以下代码
struct bob
{
double a,b;
bob(double a,double b);
}
int main()
{
bob z(2.2,5.6);
cout<<z.a<<endl;
keep_window_open();
return 0;
}
当我运行这段代码时,我得到以下错误:
错误1错误LNK2019:未解析的外部符号"public: __thiscall bob::bob(double,double)"(??0bob@@QAE@NN@Z)参考函数_main C:drivesComp-MechprogrammingV.S c++ projectsE1E1。obj E1
你需要实现你的类bob的构造函数:
bob::bob(double a,double b) : a(a), b(b) {}
您已经为bob
的构造函数提供了声明,但是您还没有给出定义。定义给出了构造函数的实现,并确切地说明了它应该做什么。在这种情况下,您可能希望构造函数将其参数赋值给对象的成员变量:
bob::bob(double a, double b)
{
this->a = a;
this->b = b;
}
我在上面的代码中使用赋值,因为你可能更熟悉它。然而,你应该知道成员初始化列表允许你直接初始化成员:
bob::bob(double a, double b)
: a(a), b(b)
{ }
表示用参数a
初始化成员a
,用参数b
初始化成员b
。它还避免了在对成员赋值之前进行可能代价高昂的默认初始化。
这是因为您没有为bob::bob(double, double)
编写代码。
struct bob
{
double a,b;
bob(double aa, double bb) a(aa), b(bb) {}
};
相关文章:
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 如何使用C++初始化向量;脚本化值不是数组、指针或矢量错误
- 分段错误 - 读取初始化指针的数组
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 修复未初始化的局部变量错误
- 初始化迭代器错误 C++ 在 GCC 编译器中
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 类型为 "Bucket&"(未限定的 const 限定)的引用不能使用 "SortedList." 类型的值进行初始化 如何修复此错误?
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 为什么我在向量初始化时收到此错误?
- C1001内部编译器错误是由于矢量初始化(如数组)引起的
- 初始化thread_local叮当中的错误
- Eclipse:错误:初始化模式失败(无法连接到目标)
- C 错误:初始化量太多
- Seg 错误初始化列表向量与控制台输入
- 通过传递的指针段错误初始化 char 数组
- c++错误:初始化器元素不是常量
- C++错误:初始化结构实例的向量数组成员
- Visual Studio C++11g编译错误-初始化程序过多
- OpenCV 错误:初始化 OpenCLDevices 中的 GPU API 调用 (-1001)