gpt4 book ai didi

c++ - C++中的构造函数参数太多

转载 作者:行者123 更新时间:2023-11-30 00:38:14 26 4
gpt4 key购买 nike

class A {
public:
A(Apar1, Apar2, Apar3 /* and so on ... */);
};

class B {
public:
B(Bpar1, Bpar2, Bpar3 /* and so on ... */);
};

class C {
public:
// C();
private:
A m_a;
B m_b;
};

其中 C 构造依赖于 AB,所以

  1. C的构造函数必须是下面的签名吗?

    C::C(Apar1, Apar2, Apar3, Bpar1, Bpar2, Bpar3)

  2. 如何以自然的方式构建C

最佳答案

您可以改为创建这样的构造函数:

class C {
public:
C (const A &a, const B &b) : m_a(a), m_b(b) {}
private:
A m_a;
B m_b;
};

C c(A(...),
B(...));

你觉得这是否更自然是一个品味问题,

关于c++ - C++中的构造函数参数太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425623/

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