c ++ over linux gcc inheritence

use*_*851 1 c++ linux inheritance

我正在尝试使用类用户继承一个名为TCPSocket的类.尽管我正在使用ifndef,但我收到了消息:'User :: User(int,sockaddr_in,sockaddr_in)'

这来自我的头文件:

#ifndef USER_H_
#define USER_H_

#include <string.h>
#include "TCPSocket.h"


class User : TCPSocket {
string _U_Name;
string _in_session;
string _in_room;

public:
User(int connected_sock,struct sockaddr_in server_addr, struct sockaddr_in peer_addr)
:TCPSocket(connected_sock,server_addr, peer_addr);
    virtual ~User();
};

#endif /* USER_H_ */
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 6

您的构造函数部分在头文件中实现:

User(int connected_sock, sockaddr_in server_addr, sockaddr_in peer_addr)
: TCPSocket(connected_sock,server_addr, peer_addr);
Run Code Online (Sandbox Code Playgroud)

如果已在.cpp文件中实现了构造函数,请删除初始化列表:

User(int connected_sock, sockaddr_in server_addr, sockaddr_in peer_addr);
Run Code Online (Sandbox Code Playgroud)

或者通过添加正文来完成实现,并确保它没有在以下位置定义.cpp:

User(int connected_sock, sockaddr_in server_addr, sockaddr_in peer_addr) 
: TCPSocket(connected_sock,server_addr, peer_addr)
{
   ....
}
Run Code Online (Sandbox Code Playgroud)

请注意,在C++中,您不必struct在整个地方键入内容.另请注意,a的继承classprivate默认的,因此您将私下继承.