构造函数可以在类体内中定义,也可以在类体外定义吗?

2024-11-22 19:33:31
推荐回答(4个)
回答(1):

声明必须在类体内,实现可以在类体外,但是必须用类域名。\x0d\x0a比如:\x0d\x0a一:在类体内实现:\x0d\x0aclassCAA\x0d\x0a{\x0d\x0apublic:\x0d\x0a//声明并实现构造函数\x0d\x0aCAA(intnData)\x0d\x0a{\x0d\x0am_nData=nData;\x0d\x0a\x0d\x0a}\x0d\x0apirvate:\x0d\x0aintm_nData;\x0d\x0a}\x0d\x0aCAA::CAA(intnData)\x0d\x0a{\x0d\x0am_nData=nData;\x0d\x0a}\x0d\x0a\x0d\x0a二:在类体外实现:\x0d\x0aclassCAA\x0d\x0a{\x0d\x0apublic:\x0d\x0aCAA(intnData);//声明构造函数\x0d\x0apirvate:\x0d\x0aintm_nData;\x0d\x0a}\x0d\x0a\x0d\x0a//构造函数的实现\x0d\x0aCAA::CAA(intnData)\x0d\x0a\x0d\x0a{\x0d\x0am_nData=nData;\x0d\x0a}

回答(2):

声明必须在类体内,实现可以在类体外,但是必须用类域名。
比如:
一:在类体内实现:
class CAA
{
public:
// 声明并实现构造函数
CAA(int nData)
{
m_nData = nData;

}
pirvate:
int m_nData;
}
CAA::CAA(int nData)
{
m_nData = nData;
}

二:在类体外实现:
class CAA
{
public:
CAA(int nData); // 声明构造函数
pirvate:
int m_nData;
}

// 构造函数的实现
CAA::CAA(int nData)

{
m_nData = nData;
}

回答(3):

构造函数本质上还是一个类的成员函数,所以它既可以在类体内定义,也可以在类体外定义的。

回答(4):

可以