c ++语言oops

时间:2011-01-18 16:41:39

标签: c++ constructor

为什么我们将构造函数声明为public

3 个答案:

答案 0 :(得分:2)

构造函数是创建对象的方式。如果你的构造函数不是公共的,那么它就不能用于从类外部构造一个新对象。

请注意,有时非公共构造函数很有用,例如:

class foo
{
public:
    static foo make_foo(int i)
    {
        // only functions of foo can use that constructor,
        // because it's private; return a foo
        return foo(i);
    }

private:
    foo(int i) { /* construct */ }
};

现在foo只能通过函数make_foo创建,无论出于何种原因。

答案 1 :(得分:1)

在下面的代码行中,初始化应该通过构造函数进行。如果构造函数在这种情况下是private,那么如何在类范围之外访问它。此外,在foo::foo(int num)实例化时默认会调用obj

foo *obj = new foo(5);

答案 2 :(得分:1)

如果不这样做,您将无法从其他对象构造对象。