C 实现继承和多态

C中的继承和多态

May 24, 2022 · 1 min · Rick Cui

ArcGIS 处理 Shape 字段

注:ArcMap 版本为 10.6.1 一、将 shape 字段处理为 WKT 文本 在属性表中添加一个 Text 类型的字段,大小尽量大一些; 使用字段计算功能 shape file 的字符串类型字段的大小有限制(254) 二、 def MySub(feat): partnum = 0 # Count the number of points in the current multipart feature partcount = feat.partCount pntcount = 0 str = '' # Enter while loop for each part in the feature (if a singlepart # feature, this will occur only once) while partnum < partcount: part = feat....

May 23, 2022 · 1 min · Rick Cui

使用 VS2022 部署、运行和调试 Linux MSBuild 项目

一、设置 Linux 环境 1. 确保已安装用于 Visual Studio 的 Linux 开发工作负荷 2. Linux 所需环境 sudo apt-get install openssh-server g++ gdb make ninja-build rsync zip 确保 ssh 服务在 Linux 计算机上运行 sudo service ssh start 参考官方文档 二、连接到远程 Linux 打开【工具】>【选项】>【跨平台】>【连接管理器】进行添加设置 也可以连接到 WSL,参考官方文档 三、创建 Linux MSBuild 项目 四、配置 Linux MSBuild 项目 大部分的默认配置都不需要修改,只需关注几个地方 调试设置 包含目录是 Linux 上项目的路径 库目录可使用相对路径 如果依赖的是动态库,需要在 Linux 端设置 LD_LIBRARY_PATH 最后在 Linux 环境中生成的项目目录如下 还可以在【调试】中打开【Linux控制台】 参考官方文档

May 18, 2022 · 1 min · Rick Cui

C++11 继承构造

通过 using 可以方便的使用父类的构造函数和其他函数; 优先使用子类的构造和函数,如果没有找到匹配的才会调用基类的; 可在子类的初始化列表中调用父类的构造函数,并对子类的成员进行列表初始化; class BS { int q; double w; public: BS() : q(0), w(0) {} BS(int k) : q(k), w(100) {} BS(double x) : q(-1), w(x) {} BS(int k, double x) : q(k), w(x) {} void Show() const { std::cout << q <<", " << w << '\n'; } int fn(int j) { cout << "BS::fn(int)\n"; return 0; } double fn(double w) { cout << "BS::fn(double)\n"; return 0; } void fn(const char * s) { cout << "BS::fn(const char *)\n"; } }; class DR : public BS { short j; public: using BS::BS; DR() : j(-100) {} // DR needs its own default constructor DR(double x) : BS(2*x), j(int(x)) {} DR(int i) : j(-2), BS(i, 0....

May 13, 2022 · 2 min · Rick Cui

C++11 委托构造

委托构造的使用方法类似成员列表初始化的变种; 注意: 如果在一个构造函数中使用了本类的委托构造,就不能再对成员使用列表初始化了; 会先执行委托构造函数的函数体,然后再执行本身的函数体; 虽然可以在构造函数中调用其他的构造函数,但已经被初始化的成员变量还会被当前的构造函数进行重置,有可能导致又变为原来的未初始化状态; class Test{ public: Test():Test(0, 0.1){ s = "Ah"; cout << "Test()\n"; } Test(int ii):Test(ii, 0.1, "Hi"){ cout << "Test(int)\n"; } Test(int ii, double dd):Test(ii, dd, "Hi"){ cout << "Test(int, double)\n"; } Test(int ii, double dd, string ss):i(ii), d(dd), s(ss){ cout << "Test(int, double, string)\n"; } void print(){ cout << "i = " << i << "\td = " << d << "\ts = " << s << endl; } private: int i; double d; string s; }; int main() { Test t(10); t....

May 13, 2022 · 1 min · Rick Cui