作为类成员的 C++ 类变量

c++ class variable as class member

本文关键字:C++ 类变量 成员      更新时间:2023-10-16

我收到消息:在以下代码中class AInv {字符串undefined reference to AVector::AVector()

#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_ */

是否可以使用类变量(而不是地址)作为类成员?我想避免变量向量的显式构造函数/析构函数。

是否可以使用类变量(而不是地址)作为类成员?

是的,它是。

我想避免变量向量的显式构造函数/析构函数。

不需要显式析构函数

;类类型的每个成员的析构函数将由AInv析构函数自动调用,无论您是自己编写还是让编译器生成隐式析构函数。

若要避免显式构造函数调用的需要,成员类型必须具有可访问的默认构造函数。你已经声明了一个,所以这很好。

但是,错误消息指示您忘记定义默认构造函数,或者未链接到包含定义的文件。