C++ 无法调用友元类的构造函数
我试图从节点类的定义内部调用我的SocketConnection构造函数,但我无法理解我遇到的编译错误-我无法理解为什么编译器认为我为SocketConnection声明的构造函数不是构造函数 以下是.h文件代码的主要部分:C++ 无法调用友元类的构造函数,c++,class,constructor,private,friend,C++,Class,Constructor,Private,Friend,我试图从节点类的定义内部调用我的SocketConnection构造函数,但我无法理解我遇到的编译错误-我无法理解为什么编译器认为我为SocketConnection声明的构造函数不是构造函数 以下是.h文件代码的主要部分: class Node { public: Node() ; int OnStart() ; friend class SocketConnection ; } ; class SocketConnection { publi
class Node
{
public:
Node() ;
int OnStart() ;
friend class SocketConnection ;
} ;
class SocketConnection
{
public:
Node * m_nptr ;
int m_sockfd ;
SocketConnection(Node * nptr) ;
};
以下是.cpp文件的主要部分:
int Node::OnStart()
{
SocketConnection newConnection(this) ;
return 0 ;
}
SocketConnection::SocketConection(Node * nptr): m_nptr(nptr)
{
}
在汇编方面,我得到:
error: ISO C++ forbids declaration of ‘SocketConection’ with no type
error: no ‘int SocketConnection::SocketConection(Node*)’ member function declared in class ‘SocketConnection’
In member function ‘int SocketConnection::SocketConection(Node*)’:
error: only constructors take base initializers
有人能帮我理解吗
干杯,
N.您有一个输入错误:
SocketConnection::SocketConection(Node * nptr): m_nptr(nptr)
// ^
将其更改为:
SocketConnection::SocketConnection(Node * nptr): m_nptr(nptr)
// ^^
谢谢你,安迪!没有使用IDE,也没有注意到这一点。@TimHortons:很高兴它有帮助:)