在C++和C中static关键字的用法,在C++和C中const关键字的用法

1、在C++和C中static关键字的用法

答:static关键字表示存储类型,修饰数据类型。在C语言中,static修饰局部变量,内存分配在静态区,生命周期延长,作用域不变。static修饰全局变量,内存分配在静态区,作用域被局限于本文件,不能被extern引用。static修饰函数,不能被extern引用。在C++中,static修饰成员函数与数据成员,则成员函数与数据成员属于类但不属于类的实例,所有类共享,可通过类名与作用域限定符直接调用。静态数据成员在类内声明,类外定义。静态成员函数只能访问静态数据成员。

2、在C++和C中const关键字的用法

答:const在C语言与C++中起到的作用都是保护目标,使得目标不被修改。在C语言中,const修饰普通变量,普通变量不能更改,const修饰指针,指针的指向不能更改,const修饰指针的解引用,指针解引用的值不能更改,指针的指向可以更改,const修饰函数的参数时,函数的参数不能更改。在C++中,const修饰成员函数,成员函数的参数不能更改,此时被修饰成员函数与其同名的成员函数构成函数重载。const修饰对象,则这个对象中的所有成员函数均不能更改,常对象只能调用常成员函数,而非常对象既可以调用常成员函数又可调用非常成员函数。const修饰返回值,返回值不能发生修改,const修饰引用,此时不能通过引用修改其引用的内容。

3、QT中基于TCP的通信中服务器端操作

  1. 创建一个QTcpServer类对象,该类对象就是一个服务器
  2. 调用listen函数将该对象设置为被动监听状态,监听时,可以监听指定的ip地址,也可以监听所有主机地址,可以通过指定端口号,也可以让服务器自动选择
  3. 当有客户端发来连接请求时,该服务器会自动发射一个newConnection信号,我们可以将该信号连接到自定义槽函数处理相关逻辑
  4. 在槽函数中,可以调用nextPendingConnection函数可以获得最新连接的客户端套接字地址,我们可以将该套接字地址存储到容器中
  5. 此时服务器与客户端已经建立连接,如果有客户端向服务器发来数据,那么对应的客户端套接字就会发射一个readyRead信号
  6. 读取套接字中的数据使用read、readLine、readAll函数来完成
  7. 向套接字中写数据,可以使用write
  8. 关闭服务器,使用close来完成

4、QT中基于TCP的通信中客户端操作

  1. 实例化一个QTcpSocket类对象
  2. 调用该对象的成员函数connectToHost连接到服务器,连接服务器时,需要给定服务器的ip地址和端口号
  3. 如果连接服务器成功,那么该客户端就会自动发送一个connected信号,我们可以将该信号连接到自定义槽函数中处理相关逻辑
  4. 如果服务器向客户端发来数据,那么该客户端就会自动发射一个readyRead信号,我们可以将该信号连接到自定义的槽函数中处理相关逻辑
  5. 可以使用read、readLine、readAll读取客户端中的数据
  6. 可以使用write向服务器发送数据
  7. 使用成员函数disConnectFromHost断开与服务器的连接
  8. 如果成功断开与服务器的连接,那么该套接字就会自动发射一个disconn信号

猜你喜欢

转载自blog.csdn.net/weixin_53478812/article/details/132699655