在同一个类的构造函数中调用函数是否很好?

时间:2015-06-03 22:18:03

标签: c++

我想知道从构造函数调用函数是否是一个好的编程? 例如:

class Foo{
    Foo(){
        function1();
    }

    void function1(){
    }
};

4 个答案:

答案 0 :(得分:1)

如果你想要纯初始化函数,你可以在默认构造函数

中处理(在某些情况下)
class C
{
    C() { /* default init */ }
    C(int a) : C() { /* do something extra with a */ }
    C(const std::string& s) : C() { /* do something extra with s */ }
};

答案 1 :(得分:0)

这绝对是可以接受的。只要确保它不是虚函数。

编辑:

“虚拟”不是“纯虚拟”

答案 2 :(得分:0)

这是两部分答案。从技术角度来看,只要它不是虚拟功能,确定没问题。

从概念的角度来看,它取决于功能的作用。如果它只是初始化,那么你的构造函数应该是这样做的。如果它做得更多,并且作为一个目的之外的功能也从其他地方被调用,那么是的,它可能是一件好事。

答案 3 :(得分:-1)

只要它不是虚函数就可以接受。