- 博客(38)
- 收藏
- 关注
原创 浅读《AutoMate: A Dataset and Learning Approach for Automatic Mating of CAD Assemblies》
我们的工具旨在辅助设计师将一组CAD零件(左图)组装成一个功能性的装配体(右图)。首先,用户选择一对需要配合(Mate)的零件,并通过点击每个零件上的位置来大致指出它们应该在哪里配合。接着,SB-GCN(结构化BREP图卷积网络)会为所选零件的BREP(边界表示)的每一个拓扑实体创建嵌入(Embeddings)。这些嵌入被输入到一个分类器中,用于对基于这些拓扑实体定义的潜在配合(Mates)进行评分。我们的系统会展示一个建议列表供用户选择。这个循环不断重复,直到实现一个可工作的机械装配体。
2025-12-02 15:35:14
740
原创 C/C++头文件防卫式声明详解
防卫式声明(Guard Headers)是C/C++编程中用于防止头文件被重复包含的技术。当多个源文件包含同一个头文件,或者头文件之间存在循环依赖时,防卫式声明可以避免重复定义错误。防卫式声明是C/C++编程中的必备技术,它能有效避免头文件重复包含导致的编译错误。无论是初学者还是资深开发者,都应该养成使用防卫式声明的好习惯。
2025-09-25 11:15:35
338
原创 类成员变量
它们用来刻画对象的“状态”,生命周期与对象一致,访问权限受 public/protected/private 控制,也可通过 static、const、mutable、inline 等关键字赋予额外语义。下面按常见维度做一个系统梳理。C++ 中的“类成员变量”(member variables,也常叫“数据成员”/data members)就是。类成员变量 = 对象状态的“仓库”。
2025-09-17 21:00:50
703
原创 利用虚析构函数解决父类指针释放子类对象的问题
使用虚析构函数是C++中实现多态对象安全删除的关键机制。它确保了通过基类指针删除派生类对象时,能够正确调用整个对象生命周期中的所有析构函数,从而避免资源泄漏。这是RAII(资源获取即初始化)原则和智能指针能够正常工作的重要基础。
2025-09-17 16:09:09
475
原创 虚函数(Virtual Function)和纯虚函数(Pure Virtual Function)
特性虚函数 (Virtual Function)纯虚函数 (Pure Virtual Function)语法实现有函数体(提供默认实现)无函数体(不提供实现)目的允许派生类选择性地重写该函数强制派生类必须重写该函数所在类可以是普通类或抽象类必须是抽象类类实例化该类可以被实例化该类不能被实例化方面虚函数纯虚函数实现有默认实现无实现,只有接口重写要求派生类可以重写(可选)派生类必须重写(强制)类性质可以是具体类使类成为抽象类实例化类可以被实例化类不能被实例化设计意图提供可覆盖。
2025-09-17 15:51:01
357
原创 c++父类子类之间的类型转换
特性向上转换 (Upcasting)向下转换 (Downcasting)方向子类 -> 父类父类 -> 子类安全性安全(自动进行)不安全(必须显式转换)常用操作符隐式转换 或(安全),(风险自担)类比把“苹果”称为“水果”把“水果”断定为“苹果”逻辑总是成立(苹果是水果)不一定成立(水果不一定是苹果)
2025-09-17 15:29:42
998
原创 C++ 中 ->和 . 操作符的区别
使用对象实例(栈分配)对象引用解引用后的指针(如使用->对象指针(原始指针或智能指针)重载了->操作符的对象。
2025-09-17 15:20:32
357
原创 纯虚函数(Pure Virtual Function)
纯虚函数是一种在基类中声明但没有提供具体实现的特殊的虚函数。强制要求所有派生类(非抽象类)必须重写这个函数。它是在普通虚函数声明的后面加上= 0来定义的。public:// 纯虚函数声明// 虚析构函数(对于有虚函数的基类,这几乎是必须的)纯虚函数是 C++ 实现运行时多态和接口抽象的核心机制。它通过的语法,强制派生类实现特定接口,从而使得基类能够定义一套规范,让不同的派生类对象在运行时表现出不同的行为。理解并熟练运用纯虚函数,是掌握 C++ 面向对象高级编程的关键。
2025-09-17 15:05:15
824
原创 函数后的 `const` 关键字
const目的:保证函数不修改对象状态,并允许常量对象调用该函数。用法:放在成员函数的参数列表之后。最佳实践如果一个成员函数确实不需要修改任何成员变量,就一定要将其声明为const。这是设计良好类接口的重要原则。
2025-09-17 15:02:22
235
原创 override
override目的:显式声明意图,强制编译器检查重写是否正确。用法:在派生类的成员函数声明的参数列表之后、函数体(或=0或;)之前使用。最佳实践:在重写任何虚函数时,总是使用override关键字。这是一个非常好的习惯。
2025-09-17 15:01:44
360
原创 在类外实现成员函数必须加上 类名::
当我们在类的外部(比如一个单独的.cpp文件)定义(即实现)这个函数时,我们必须使用作用域解析运算符来告诉编译器:“我现在要实现的不是别的函数,正是那个属于Car类作用域里的honk函数!// Car.cpp// 【正确】在类外【定义】成员函数,必须使用 类名::void Car::honk() { // 告诉编译器:我实现的是 Car 类里的 honkBeep!就像函数的“姓氏”,它明确了honk和drive的家族归属,避免与其他人混淆。场景代码解释类内声明。
2025-08-27 10:49:51
317
原创 visual studio垂直选择
转载于:https://www.cnblogs.com/NickYao/archive/2007/12/28/1018643.html。其实也很简单,只要同时按住Shift + Alt + 方向键或者单按Alt + 鼠标控制就可以做垂直选择了。平常在编写代码时,我们都知道用Shift + 方向键来选择一行或多行代码。但如果只要选择某几列代码呢?这可能就很多不多人不知道了。
2025-08-01 15:25:00
126
原创 函数参数默认值使用与示例
C++ 允许你为函数的参数提供默认值,从而使得函数调用更加灵活、简洁。默认参数只能出现在函数声明中(如.h文件),在定义处(如.cpp文件)不能再次写默认值,否则会导致编译错误。✅ 默认参数让函数调用更灵活,可省略不重要的信息;✅ 默认参数只能写在函数声明中,通常位于.h文件;✅.cpp文件可以用注释/* = 0 */来提示默认值,但不能写成语法;✅ 使用std::setw可以优雅格式化编号;✅ 良好结构的代码(.h + .cpp 分离)更易维护和复用。
2025-07-30 17:54:24
324
原创 edge浏览器打不开知乎
往下滑到使用安全的 DNS 指定如何查找网站的网络地址,关闭后面的滑窗。打开Microsoft edge 浏览器的设置界面,找到隐私、搜索和服务。
2024-12-27 09:53:23
4079
2
原创 LINK : fatal error LNK1104: 无法打开文件project.exe
这个问题涉及到 Visual Studio 在构建项目时生成的路径和文件名设置不匹配,以及链接器(Linker)输出文件的路径不正确。这通常是由于项目的输出目录和目标文件名配置不一致导致的。
2024-10-31 14:43:03
2574
原创 Anaconda 一打开就报错,卸载与重装才发现是系统环境的原因
ImportError: DLL load failed while importing _ctypes: 找不到指定的模块。再次打开Anaconda Prompt (Anaconda)报错。打开Anaconda Prompt (Anaconda)报错。原因:系统环境设置了PYTHONHOME,删除该环境。查找网上的解决方法,发现我的系统环境有这三项。
2024-10-06 20:46:30
1415
原创 Visual Studio C++调用aconoda文件(包含第三方库)
报错Fatal Python error: failed to get the Python codec of the filesystem encoding需要设置系统环境。
2024-10-06 17:30:24
617
原创 pip._vendor.packaging.version.InvalidVersion: Invalid version: ‘-PKG-VERSION‘
Python 脚本正在尝试使用图形用户界面(GUI)库,但找不到已安装的任何 GUI 库。要用conda命令安装。
2024-09-10 21:22:53
3172
2
原创 No module named ‘OCC.AIS‘
后报错ModuleNotFoundError: No module named 'OCC.AIS'
2024-09-10 20:22:52
379
原创 torch-geometric/dgl安装
网址:https://pytorch.org/get-started/previous-versions/可进入python环境测试是否安装成功。在anaconda中进入虚拟环境。(gpu版的需要下载cuda)根据py版本,下载whl。
2024-08-27 16:48:54
1006
原创 运行yolov5—detect报错module ‘matplotlib.cm‘ has no attribute ‘register_cmap‘
pip install matplotlib==1.3.0
2024-08-26 10:29:10
1096
1
原创 找不到 Windows SDK 版本10.0.17134.0。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
一般出现在运行别人代码的时候。点右下角修改,等待下载。查看需要的sdk版本。勾选需要的sdk版本。
2023-11-13 20:36:12
2799
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅