我在以下代码中的字符串undefined reference to AVector::AVector()
上收到了消息:class AInv {
:
#ifndef AINV_HPP_
#define AINV_HPP_
#include "AVector.hpp"
class AInv {
public:
double w;
double g;
AVector vector;
};
#endif /* AINV_HPP_ */
AVector的定义:
#ifndef AVECTOR_HPP_
#define AVECTOR_HPP_
class AVector {
public:
double x;
double y;
double z;
AVector();
AVector(const AVector &v);
};
#endif /* AVECTOR_HPP_ */
是否可以使用类变量(不是地址)作为类成员?我想避免变量向量的显式构造函数/析构函数。
答案 0 :(得分:1)
是否可以使用类变量(不是地址)作为类成员?
是的,是的。
我想避免变量向量的显式构造函数/析构函数。
不需要显式的析构函数;类型的每个成员的析构函数将由AInv
析构函数自动调用,无论您是自己编写还是让编译器生成隐式析构函数。
为了避免显式构造函数调用的需要,成员类型必须具有可访问的默认构造函数。你宣布了一个,所以没关系。
但是,错误消息表明您忘记定义默认构造函数,或者未链接到包含该定义的文件。