gpt4 book ai didi

c++ - 使用另一个类 C++ 构造一个类

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:47 26 4
gpt4 key购买 nike

我是 C++ 的新手,最近开始学习面向目标的编程。我想自己写处理三维 vector 和 3x3 矩阵的线性代数模块。我尝试将矩阵定义为由三个 vector 组成的类。

class vector {
public:
double n1, n2, n3;
vector (double a, double b, double c) {
n1 = a; n2 = b; n3 = c;
}
};

class matrix {
public:
vector m1, m2, m3;
matrix (vector a, vector b, vector c) {
m1 = a; m2 = b; m3 = c;
}
};

但是,我遇到了一个编译错误:

In constructor `matrix::matrix(vector, vector, vector)':
no matching function for call to `vector::vector()'

我猜程序不知道如何使用我定义的 vector 类构造矩阵。但是我不明白为什么。如果有人能解释一下,我将不胜感激。

最佳答案

您需要通过成员初始化列表初始化您的m1,m2,m3成员:

matrix (const vector& a, const vector& b, const vector& c)
: m1(a),m2(b),m3(c)

注意以下几点:

  • 此形式只能与构造函数一起使用。
  • 您必须(至少在 C++11 之前的版本中)使用这种形式来初始化非静态常量数据成员。
  • 您必须使用此表单来初始化一个引用数据成员。

另外,请注意,有 std::vector ,你可能想重命名你自己的 vector 以避免命名冲突,你最好通过 const 引用传递 vector

关于c++ - 使用另一个类 C++ 构造一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18510008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com