之前一直没有写博客的习惯,做了一些东西做了就做了,可是今天因为一点小小的问题让我找了一整天的bug,想以此为教训,鞭挞自己,做过的东西千万啊要掌握、融会贯通,不然就白做了,今天就以此为契机,以后没做一点东西都会养成写博客的习惯,将自己做过的东西记录下来,让自己以后有证可查。
今天的问题很简单,由于构造函数的执行顺序引起的错误,下面贴上伪代码说明,首先是头文件:
class A { public: B* m_b; C* m_c; ErrorClass m_err_class; D m_d; }
成员变量m_err_class的初始化需要用到m_b、m_c和m_d,A类型的cpp中构造函数如下:
A::A() :
m_b(new B()),
m_c(new C()),
m_err_class(m_b, m_c, &m_d)
{...}
class A
{
public:
B* m_b;
C* m_c;
D* m_d;
ErrorClass m_err_class;
}
竟然让这么简单的问题搞了一天,这是一次血淋淋的教训,希望自己能够更踏实的学习,千万不能昨晚就忘记,每做一点东西都要积累起来,这样日积月累才能使自己强大,加油垃圾!