一个多平台的系统基本架构(如下图),数据库部分我们以后可以使用HDFS和MapReduce进行分布式存储,之前大致介绍了js和c++交互的几种方式对比,考虑到拓展性和访问效率,还是优先使用HTTP协议。 由于C++并没有封装HTTP的相关接口,所以我们需要自己封装,HTTP属于应用层的协议,其依赖的传输层协议还是TCP(如下图),所以我们可以通过socket的监听来完成http的监听。 #include <stdio.h> #include <stdlib.h> #include <s…

2021年3月10日 0条评论 12点热度 阅读全文

结论: 不管有没有出现异常,finally代码块都会执行; 不管try和catch的代码块中有return时,finally仍会执行, 且如果finally代码块也有return,则此代码肯定会返回finally执行的return值。 分有return和没有return来讨论try-catch-finally执行顺序的情况: 1 无return 举个例子: try { t(); tt(); } catch (Exception e) { c(); } finally { f(); } m(); 1.1 当try中的…

2021年3月5日 0条评论 22点热度 阅读全文

static静态成员变量 在成员变量前加static,该成员称为静态成员变量 static int _count; 在成员函数前加static,该函数称为静态成员函数 static int getCount() { return _count; } 代码示例 class A { public: static int getCount() { return _count; } private: static int _count; }; //类外定义 int A::_count = 0; static成员特性: 静态…

2021年3月4日 0条评论 9点热度 阅读全文

我们都知道,成员变量的初始化是在构造函数中完成的,而我们之前在构造函数的函数体内写的赋值操作,其实并不是初始化,因为,而是普通的赋值操作。初始化只能被初始化一次,而赋值操作可以被赋值多次。那我们怎样才能完成成员变量的初始化呢,这时候就引进了–初始化列表 格式: 以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式 class Date { public: Date(int year, int month, int day) //初始化列表 :_year(year)…

2021年3月4日 0条评论 17点热度 阅读全文

开发工具与关键技术: Visual Studio 2019、C#语言、WPF、MVC三层架构 作者:邓李庆 撰写时间: 2021年2月08日 小编首先来给大家介绍一下,什么是三层架构:三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。 三层架构区分层次的目的是为了“高内聚…

2021年3月4日 0条评论 4点热度 阅读全文

.net 可以看做是另一种的java,但是比java扩展性要高。 类比: .net被csc编译时会生成IL代码,IL通过JIT(即时编译)运行于CLR(公共语言运行时)(可以进一步细化说是在CLI)上。 java文件被javac编译生成class文件,class文件通过java解释器运行于java虚拟机上。 .net的扩展性高,其支持的语言类型更广泛,除了C#、VB外,甚至还支持C++. using <mscorlib.dll> //需要设置使用公共语言运行时 //https://blog.csdn.n…

2021年3月3日 0条评论 14点热度 阅读全文

文章目录 1. 类的定义 2. 类的访问限定符 3. 类的大小 4. this指针 1. 类的定义 class为定义类的关键字,className为类的名字,{}中为类的主体。 class className { //类体:由成员函数和成员变量组成 }; 类的定义方式:①声明和定义全部放在类体中,②声明放在.h文件中,类的定义放在.cpp文件中。 //C++中常用的定义类方式 class 类名 {所有成员}; //声明和定义全部放在类体中 class Student { public: //成员函数 void Se…

2021年3月3日 0条评论 13点热度 阅读全文

static 静态变量 一般在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈区分配空间,函数在栈区分配的空间在此函数执行结束时会释放掉。 这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围,使得在此函数中定义的变量,不仅仅只受此函数控制。 static关键字可以使变量的访问范围控制在函数内,并且保存值至下一次调用,所占内存在程序运行结束时释放。 静态全局变量 静态全局变量…

2021年3月3日 0条评论 11点热度 阅读全文

1:先说一下AVL Tree和普通的二叉排序树的区别: 对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵平衡树时)为log2n,其各操作的时间复杂度(O(log2n))同时也由此而决定。但是,在某些极端的情况下(如在插入的序列是有序的时),二叉搜索树将退化成近似链或链,此时,其操作的时间复杂度将退化成线性的,即O(n)。我们可以通过随机化建立二叉搜索树来尽量的避免这种情况,但是在进行了多次的操作之后,由于在删除时,我们总是选择将待删除节点的后继代替它本身,这样就会造成总是右边的节点…

2021年3月2日 0条评论 23点热度 阅读全文

1:先说一下AVL Tree和普通的二叉排序树的区别: 对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵平衡树时)为log2n,其各操作的时间复杂度(O(log2n))同时也由此而决定。但是,在某些极端的情况下(如在插入的序列是有序的时),二叉搜索树将退化成近似链或链,此时,其操作的时间复杂度将退化成线性的,即O(n)。我们可以通过随机化建立二叉搜索树来尽量的避免这种情况,但是在进行了多次的操作之后,由于在删除时,我们总是选择将待删除节点的后继代替它本身,这样就会造成总是右边的节点…

2021年3月1日 0条评论 18点热度 阅读全文