当我们重载operator =(赋值)时,我想知道为什么我们应该返回一个引用.一方面,我见过的(重载运算符=)的大多数示例返回一个引用,但另一方面,我看到了几个没有返回引用的示例(同一主题).
有人解释我,当我们需要返回一个引用(特别是在运算符=重载中),并给出示例吗?
我正在尝试通过套接字制作国际象棋游戏。有一个服务器负责将棋盘发送给玩家,以获取输入和响应等等。我试图创建一个客户端服务器(实际上是 2 个客户端和服务器),但它不起作用。客户端正确连接到服务器,但传递的数据不正确。例如,我从客户端发送“E2-C3”;recv 结果(在服务器端)始终为 0,否则会打印垃圾。
客户 :
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
#include <sys/types.h>
// Need to link with Ws2_32.lib, Mswsock.lib, and Advapi32.lib
#pragma comment (lib, "Ws2_32.lib")
#pragma comment (lib, "Mswsock.lib")
#pragma comment (lib, "AdvApi32.lib")
using namespace std;
#define SERVER_IP "1.1.1.1"
#define SERVER_PORT 8888
#define BUFFER_SIZE 1024
// server side
#define INVALID_MOVE 00
#define PLEASE_ENTER_A_MOVE 15
#define PRINT_BOARD 20
#define END_GAME 30
// client side
#define MOVE 10
int …Run Code Online (Sandbox Code Playgroud)