如何在C ++中的另一个类中声明一个类的构造函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C ++中的另一个类中声明一个类的构造函数相关的知识,希望对你有一定的参考价值。

例如:

class A
{
    public:
    A();
    int a;
};

class B
{
    A::A()
    {
        a = 1;
    }
};
答案

回答这个问题的最好方法就是一句话:不要。在你的例子中,AB之间没有关系,所以你甚至没有理由尝试在另一个类中定义构造函数。你想要在A中提及B的构造函数的唯一原因是B来自A。你想用A保留A的部分内容,而不是将它们分成其他类,并使其成为可读性和维护的噩梦。简短版本是你应该用A保存A的所有部分,所以不要试图把它们放在其他地方。

另一答案

不,你不能。

来自标准qazxsw poi的报价(强调我的):

可以在其类定义中定义成员函数,在这种情况下,它是内联成员函数,或者如果已经声明但未在其类定义中定义,则可以在其类定义之外定义它。出现在类定义之外的成员函数定义应出现在包含类定义的命名空间范围内。

在您的示例中,定义出现在类范围中,这与此规则相矛盾。

以上是关于如何在C ++中的另一个类中声明一个类的构造函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在Obj C中的另一个类中使用一个类中声明的变量

目标 C:我如何访问在我的 AppDelegate 中的另一个类中声明的类?

C++ 类 - 派生类中的构造函数声明

在MFC中,一个类如何调用其他类的变量和函数??

如何通过 C++ 中指向该数组的指针访问另一个类中的数组?

C++哪里写一个类的函数? [关闭]