全站共计3名贡献者
2025
12月
Linux-云服务器初始配置
本文介绍云服务器初始配置的核心步骤:首先配置SSH密钥登录,通过ssh-keygen生成密钥对,将公钥上传服务器后,禁用密码登录和root直接登录以提升安全性。随后提供服务器信息查看命令:uname查看内核信息,free查看内存使用,df检查磁盘空间,netstat/ss监控网络端口,id获取用户权限。最后强调系统服务管理(如systemctl)和用户权限配置的重要性。整体流程旨在实现安全、高效的远程服务器管理。
DNS 解析:记录类型、添加规则、冲突与排障
本文系统介绍了DNS的核心概念与实际应用。DNS通过域名解析将人类可读地址转换为IP地址,涉及权威DNS、递归解析器及缓存三层协作。关键记录类型包括:A/AAAA记录指向IPv4/IPv6地址,CNAME实现域名别名指向(但不可与其他记录共存),MX记录指定邮件服务器,TXT用于验证与安全策略。主域名(apex)配置CNAME会与MX等记录冲突,因此行业通用方案为:主域名配置A/AAAA记录及MX邮箱解析,子域名www通过CNAME接入CDN,并设置301跳转至www。解析冲突可通过表格查询,实际生效可用`dig`或`nslookup`命令检测。
为什么 C++ 的类/结构体/联合体/枚举 的`}`后面要写`;`,而函数定义不用?
文章探讨了C++中类、结构体、联合体定义后需要分号的常见编译错误,如“expected ';' after class definition”。原因源于C语言继承,因为在C中,结构体定义后可立即声明对象(如struct { int x; } s1;),作为简单声明的一部分,以分号结尾,类似于int a = 1;。在早期C版本中,省略分号可能导致函数隐式返回结构体类型。而在Java和C#中,类声明不需要尾随分号。语法上,class、struct等属于简单声明,必须以分号结束;函数定义以函数体结尾,不需要分号。理解此规则有助于避免编译错误。
c++中class的特殊成员函数
本文系统阐述了C++中特殊成员函数的核心规则与规范。**Three/Five/Zero规则**是核心原则:自定义析构、拷贝构造或拷贝赋值时,需按规则补充其他成员函数(Rule of Three);引入移动语义后,需显式定义全部五个函数(Rule of Five);非资源管理类应避免自定义,依赖标准库实现零成本管理(Rule of Zero)。文章还详细定义了四种关键函数的原型规范:**拷贝构造**首参必须为引用类型;**拷贝赋值**首参可为值或引用,推荐返回引用支持链式赋值;**移动构造/赋值**首参必须为右值引用,移动构造需转移资源所有权。遵循这些规则可避免浅拷贝、双重释放及移动语义失效等问题。
vs <> vs code <> qt creator 快捷键对比
本文对比了Visual Studio、VS Code和Qt Creator三大IDE在Windows平台的快捷键差异,涵盖项目管理、基础编辑、代码导航、调试运行等20余类操作。核心发现:基础编辑(如复制/粘贴/撤销)和导航(如跳转定义F12)在三者中高度一致;但高级功能差异显著——全局搜索在VS/VS Code中为Double Shift,而Qt Creator需Ctrl+K;重构功能(如提取方法)在Qt Creator中大量缺失(标记为■),仅部分通过Alt+Enter实现;调试方面,Qt Creator的断点管理和进程附加功能不足,而VS/VS Code支持更全面的快捷操作(如Ctrl+Alt+B查看断点)。Qt Creator在代码分析和版本控制集成上相对薄弱,需依赖插件或菜单操作。