Share Mind

Love Reading | Film | Climbing | Snooker

前言


OpenCascade,简称OCCT,是一个开源的3D几何内核开发平台库,Wiki上这样论述OCCT

Open Cascade Technology (OCCT), formerly called CAS.CADE, is an open-source software development platform for 3D CAD, CAM, CAE, etc.
that is developed and supported by Open Cascade SAS. 
OCCT is a full-scale B-Rep (Boundary representation) modeling toolkit. 
OCCT is available under the LGPL-2.1-only license permitting its usage in open source and proprietary applications

OCCT 前称 CAS.CADE,是一个开源的3D计算机辅助设计,辅助制造,辅助功能等的软件开发平台,由 Open Cascade SAS这家机构开发和支持。OCCT是一个BRep模型工具包,在LGPL-2.1的开源许可证下使用。

阅读全文 »

前言


之前讨论过C++对象模型里面涉及到虚函数表及虚函数表指针问题,C++类实例化对象时候,不同实例化对象有各自的虚函数表指针,但是指针指向的虚函数表对于不同的实例化对象是否都各自存一份还是属于类的呢?有必要验证下(如未特别说明均在G++9.4.0, Gcc9.4.0, Ubuntu20.04, 64bit机器环境下测试的)

阅读全文 »

前言


前两篇主要介绍了C++对象在一级继承体系下的对象模型,接下来将考虑二级继承体系下常用的菱形继承对象模型的影响和变化,主要包括普通菱形继承和虚拟菱形继承

阅读全文 »

前言


前一篇主要介绍了C++对象在普通单继承和普通多继承体系下的对象模型,没有考虑到虚继承的情况。接下来将从虚拟单继承,虚拟多继承(包括一部分虚继承和全部虚继承)等几种继承方式下分别探究下C++对象模型的特点,如未特别说明,所有虚拟继承体系下的基类实现代码与前一篇是一致的

阅读全文 »

前言


前一篇主要介绍了C++对象的内部基本布局和三种对象模型,没有考虑到继承的情况。在各种继承情况下,对象的内存布局又有什么变化呢?接下来将分三篇从普通单继承,普通多继承,虚拟单继承,虚拟多继承,菱形普通继承,菱形虚拟继承等几种继承方式下分别探究下C++对象模型的特点

阅读全文 »

前言


在C++中经常出现的问题就是求某个对象的大小,包括各种场景如空类,含虚函数的类,不含虚函数的类等等,与之相关的就是C++最重要的特性多态的实现方式——虚函数的内部实现机制。这些问题都涉及到C++的对象模型内存布局,下面就从计算对象空间大小问题引出对象内存的基本布局和对象模型的分类。并在接下来的各篇文章中依次介绍各个继承体系下对象内存布局情况大小,如未特殊说明这些实例均是在G++9.4.0, Gcc9.4.0, Ubuntu20.04, 64bit机器环境下测试结果

阅读全文 »

前言


在C++面试过程中,一个常考的题目就是实现一个类似于String类功能的字符串类,这道题目看似简单,其实如果一不小心就会踩到坑。完整的写出包括普通构造函数、拷贝构造函数及赋值拷贝函数的字符串类其实也不简单,但是能看出一个C++码字者的基本功。本篇就简单实现这个字符串类功能,并延伸对C++构造、拷贝构造和赋值拷贝函数的一些总结

阅读全文 »

前言


Next主题默认配置满足基本的写作需求,有时候需要根据自定义配置让Next主题按照自己喜欢的方式呈现或增加一些额外的实用功能

阅读全文 »

前言


之前都是在Linux环境下搭建Hexo博客写文章,用Hexo new page [page name] 来新建page name文章,执行该命令时候,会同时生成一个文章名称相同文件夹,该文件夹用来存放与此篇博客相关的资源文件,常用的如图片等,在博客里面引用图片使用的是相对路径,这样方便每篇博客文章和相应的图片资源一起分类管理。但是切换到Windows环境下搭建Hexo博客写文章,用同样的方式却无法加载出图片。

阅读全文 »

前言


早些时候在文章Vim编辑器总结中总结Vim的常用用法和Linux下的安装和配置,虽然大部分时间是在Visual Studio + Viemu插件方式工作,但是有时候需要在Windows下使用Vim环境,因此有必要在Windows环境配置和Linux相似的Vim编辑环境,下面把Windows下GVim的安装和配置使用主要是与Linux环境下的不同地方进行分析总结。

阅读全文 »