在施工期间设置会员的私人财产

时间:2015-06-07 12:55:35

标签: c++ c++11 constructor attributes

下面有两个类,我想在A的构造函数中设置b.i。我该怎么做?

我无法将值传递给B的构造函数,因为我只在A的构造函数中获取值。 我尝试将A::A()作为B的朋友函数,但这需要我包含a.hpp,这会导致循环包含。 我能提出的唯一解决方案是将b的类型更改为B*。还有更好的方法吗?

A.hpp:

#include "B.hpp"
class A {
private:
    B b;
public:
    A();
}

B.hpp:

class B {
private:
    int i;
public:
    B()
}

我找到的解决方案

逻辑解决方案是让A成为B的朋友,因此它可以访问i。

我之前尝试过这个,但之后它没有用。显然这是由于另一个问题,或者我做错了,因为现在它确实有效。

1 个答案:

答案 0 :(得分:0)

您可以使用构造函数初始化列表来实现此目的。

String sql = 
        "INSERT INTO tblHemde (Beskrywing, VlakVanDeftigheid, Kleur) " +
        "VALUES (?,?,?)";
try (PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setString(1, inNuweBeskrywing);
    ps.setInt(2, inVlakVanDeftigheid);
    ps.setString(3, inKleur);
    ps.executeUpdate();
}