在将值传递给初始化列表之前,我想进行预处理活动。
(例如:做断言检查)
这是我的问题的一些背景:假设我有,
1. class B {
2. private:
3. int b_value;
4. public:
5. B(int input_of_b) {
6. b_value = input_of_b;
7. }
8. };
和
9.
10. class A {
11. private:
12. int a_value;
13. B b_obj
14. public:
15. A(int input_value) : b_obj(input_value) {
16. //A constructor gets called after init list happens
17. }
18. };
如果,在第 15 行;就在我调用初始化列表进行初始化之前b_obj (b_value)
- 到 input_value
我想操纵(检查或一些预处理) input_value 的值?
我如何实现这一目标?在 Java 中 - 会有类似初始化块的东西。
我已经想到了——
在 A 类和 B 类外部创建一个函数,在创建 A 的对象并使用“input_value”对其进行初始化之前,预处理该值。(但是,这违反了松散耦合的概念)
将父类“A的父类”添加到A类,使A类扩展它,在该类中进行预处理,因为父构造函数在初始化列表之前被调用?我没有尝试过,我不确定这是否是正确的方法。