小编use*_*087的帖子

错误 C2248:无法访问类中声明的受保护成员

我在派生类的私有函数中使用的基类的受保护构造函数有问题:

基类:

class Socket 
{

    public:
    virtual ~Socket();
    // Constructors :
    Socket();

  protected:
    Socket(SOCKET& s);
 };
Run Code Online (Sandbox Code Playgroud)

派生类:

    class Server : public Socket 
    {
    public:

         Server();
        ~Server();
    private: 
        int ServerLoop();
    };
Run Code Online (Sandbox Code Playgroud)

我尝试在 ServerLoop 函数中创建 Socket 对象

SOCKET client_sock = accept( m_socket, ( sockaddr* )&client_addr, &size );
Socket* Client = new Socket( client_sock );
^^^^^^
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

error C2248: 'NET_SOCKETS::Socket::Socket' : cannot access protected member
declared in class 'NET_SOCKETS::Socket'
Run Code Online (Sandbox Code Playgroud)

在 ^^^^ 的行中。是什么导致了这个错误?

c++ constructor protected

3
推荐指数
1
解决办法
4965
查看次数

标签 统计

c++ ×1

constructor ×1

protected ×1