如何在C ++中的另一个类中声明一个类的构造函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C ++中的另一个类中声明一个类的构造函数相关的知识,希望对你有一定的参考价值。
例如:
class A
{
public:
A();
int a;
};
class B
{
A::A()
{
a = 1;
}
};
答案
回答这个问题的最好方法就是一句话:不要。在你的例子中,A
和B
之间没有关系,所以你甚至没有理由尝试在另一个类中定义构造函数。你想要在A
中提及B
的构造函数的唯一原因是B
来自A
。你想用A
保留A
的部分内容,而不是将它们分成其他类,并使其成为可读性和维护的噩梦。简短版本是你应该用A
保存A
的所有部分,所以不要试图把它们放在其他地方。
另一答案
不,你不能。
来自标准qazxsw poi的报价(强调我的):
可以在其类定义中定义成员函数,在这种情况下,它是内联成员函数,或者如果已经声明但未在其类定义中定义,则可以在其类定义之外定义它。出现在类定义之外的成员函数定义应出现在包含类定义的命名空间范围内。
在您的示例中,定义出现在类范围中,这与此规则相矛盾。
以上是关于如何在C ++中的另一个类中声明一个类的构造函数的主要内容,如果未能解决你的问题,请参考以下文章