- 博客(58)
- 收藏
- 关注
原创 (十五)面向对象程序设计
显示改写虚函数,override动态绑定:当使用基类的引用(或指针)调用一个虚函数时将发生动态绑定.析构函数应该被定义成虚析构函数,当遇到一个类A的指针,如果是虚析构函数,那么会调用具体类的析构函数(并逐层向上调用析构函数),否则会调用类A的析构函数,可能会造成释放不正确.析构函数都会调用上层基类的析构函数.其实虚函数造增加了耦合,并非是一个好的决策,应该尽量的设计成不需要虚函数,每个
2014-06-26 16:24:24 431
原创 (十二)动态内存与智能指针
shared_ptr p;shared_ptr p = make_shared(42);shared_ptr p2(new int(42));//不推荐,为了避免智能指针与普通指针的混用,所以最后使用make_shared,这样在内存分配之后立刻与智能指针绑定到一起.
2014-06-24 15:29:29 536
原创 异常分类记录
系统已经不安全,不可继续使用系统安全,未对系统其他部分造成影响.参数错误无效输入资源不足遇到错误并尽可能尝试解决但最终失败的,即不可解决的错误
2014-04-01 20:13:03 400
原创 矛盾中寻求平衡
这个世界就是这样的,充满了矛盾,能找到一个恰当合适的平衡点,那你就是厉害的所有遇到的矛盾问题,我喜欢从这个世界,这个宇宙中寻求答案,因为这个宇宙是完美的,而人幻想出来的东西却总是充满缺陷的.马,腿,奔跑.马是拥有腿这个属性的,也是拥有奔跑这个行为的,而腿拥有奔跑的行为吗?腿拥有的是抬腿和踢腿的行为.马利用腿的抬腿和踢腿的行为,在陆地上构成了奔跑的行为.所以 腿和奔跑两个
2014-03-18 13:02:44 1396
原创 人和机器的区别
人和机器的区别,大概都会这样说:机器只能做人类设计好的逻辑,机器不可能创新,而人类可以我同意前半句,至于后半句,还有待商榷.人类真的会创造吗?其实动物,人类也只是一直在模仿模仿大自然思考大自然的一切,加之以模仿于是"发明"出来了但追其本源都能在大自然中找到其影子超出自然界规律?我
2014-03-15 02:26:27 794
原创 关于中文标识符的思考
标识符的重要性不言而喻,在大型项目开发中,有一个好的标识符,能轻易而准确的理解一个类的概念,一个函数的功能,各个设施的作用和他们之间的联系.比起好的注释,我相信有一个好的标识符更直接重要.问题描述:中文标识符没有存在意义吗,中文标识符没有其价值吗?我相信任何事物都有他的两面性,物皆有其位,在一个正确的地方使用一个正确的工具,就能发挥其价值首先要强调的一点是,使用中文
2014-03-07 22:24:31 1141
原创 项目开发步骤
一,前期准备1,定义问题,从最本质的出发点,描述面临的问题是什么2,需求分析,要求有一套明确、稳定的需求,充分详尽的描述需求内容,对于不确定的需求应该有合理的预测和安排3,架构
2014-03-06 21:30:07 453
原创 函数返回大类型方式
在函数调用中,返回值如果是内置类型,由于比较小,为了速度快,通常使用eax,edx传递32位,64位返回值,当返回值类型较大时注意,实现方式可以是任意的,这里只简单探究其中一种实现方式,来大概有个映像,可以明白,在函数调用中一般是个什么概念,但并非绝对,但估计也都差不多.struct MyStruct{ int SomeInt[0x20];};MyStruct GetSt
2014-03-04 12:42:54 662
原创 (十一)关联容器
map:关键字-值(key-value)对,字典set:关键字的集合,可以高效的查询一个关键字是否在这个集合中.允许重复关键字的容器名字中包含 multi(即一个关键字有多个值),用哈希函数组织的无需容器以unordered开头map word_count;++word_count["SomeKey"];//如果word_count中没有SomeKey,则下标运算会自动创建一个新的
2014-03-01 19:43:00 459
原创 (十)泛型算法
可调用对象:函数,函数指针,重载了调用运算符的类(那不是初始化?),lambda表达式(简易函数,或简易类).lambda表达式,作用为简易函数,通常为内联,并且可以定义在函数内部,可以没有名字.但需要包含基本的返回类型,参数列表,函数体.[捕获列表](参数列表) -> 尾置返回类型 { 函数体 }lambda 要求返回类型使用 尾置返回类型捕获列表是lambda所在函数中定义
2014-03-01 10:35:28 453
原创 (九)顺序容器
vector,可变大小数组,支持快速随机访问,但在尾部之外位置插入删除元素很慢deque,同vector,但是支持头部添加删除元素,在中间添加删除元素还是慢list,双向链表,任意位置添加删除元素都很快,但是只可以遍历访问元素,不支持快速随机访问forward_list,单项链表array,固定大小数组,同数组string,同vector,但是专门用来存储字符,并提供一些字符处
2014-02-28 13:12:42 457
原创 (八)IO库
IO流机制可以具有统一的通用性,忽略具体设备类型对象外界之间的差异,相比函数的优势是可以看成是无名的函数,对未知个参数执行一个函数调用,不如分别对每个参数执行调用.IO对象无法拷贝或赋值,所以一般以引用的方式传递和返回流,因为读写IO对象会改变其状态,所以一般不会设置const流,当流失败,会返回error-code,而非抛出异常.刷新缓冲区,endl,flush,endl,unitbuf
2014-02-28 12:50:01 398
原创 (七)类
类的有点是讲相关联的数据放到了一起,并且提供了相应的操作方法,可以方便使用和管理.但凡有数据流入类,那么就要对数据进行合法有效性检查,不符合则抛出异常,在类内部,因为已经确认数据的有效性,应该检查函数参数的有效性,使用assert应该使用常量成员函数,来提高可用性.无论何时只要类的对象被创建,就会执行构造函数析构函数不被执行的情况,线程非自然退出导致栈未被清理,相应的析构函数不会被
2014-02-28 01:13:17 469
原创 (六)函数
需要注意求值顺序在很多时候是不确定的我们把只存在于块执行期间的对象称为自动对象,当块执行结束后,自动对象销毁,值不在可靠.如果一个函数永远也不会被用到,那么可以只声明但没有定义.形参使用指针还是引用?都有可能为空,监测方案.建议使用引用代替指针?考虑!尽量使用常量引用作为参数,这样const对象,字面值都可以传进来.如果所有的实参类型都相同,可以传递一个名为initialize
2014-02-28 00:55:23 353
原创 (五)语句
范围for 使用的是一个序列,能返回迭代器的begin和end成员.在范围for中预存了end()的值,所以不应该修改序列的大小.异常,throw 中表达式的类型就是抛出的一场类型,如果找到相应的catch则执行,完成后跳转到最后一个catch之后的语句继续执行(如果未能处理,如何继续向上层抛出传递?重新抛异常?)异常流程,当有异常抛出时,在当前函数寻找异常处理程序 catch
2014-02-24 11:07:27 386
原创 (四)表达式
sizeof( type)sizeof exprsizeof与decltype一样,不会实际求运算对象的值,而是在编译器求出结果,所以不会实际运行代码,即使访问一个空指针也能得到对应的大小 sizeof( *(int*)0 );可以使用作用域来获得类成员的大小 sizeof SomeClass::Age;static_cast :普通类型转换,进行类型检查,要求转换
2014-02-23 21:02:19 395
原创 (三)字符串、向量、数组
直接初始化和拷贝初始化string s1(10,'c');string s2 = string(10,'c');//会影响性能!?s1.size();//返回对象中字符的个数,类型为string::size_type,是无符号类型,不要与有符号类型混用
2014-02-20 18:45:59 531
原创 (二)基本内置类型
char类型是无符号还是有符号由编译器决定,所以应该明确指定类型为 signed char 或 unsigned charfloat和double计算代价相差无几,有些时候double比float还快,所以应该优先使用double表达式中既有带符号类型又有无符号类型时,带符号类型会自动转换成无符号类型,有可能出现不期望值,所以应该尽量使用带符号类型
2014-02-18 17:49:28 558
原创 (一)常规基本概念
iostream流,术语"流"的概念是,字符是自动顺序生成或消耗的.程序执行语义为优先考虑.程序尽可能反应本质,容易知其所以然.
2014-02-18 17:23:29 543
原创 (二十五)事务处理
如果在写入一个记录时即使出现了一次失败,那么在事务中已写入的所有其他数据也会滚回CourseManagementSystem.TransactionsADO.NET创建事务
2014-02-18 10:31:36 356
原创 (二十二)安全性
身份验证和授权,角色权限,声称.加密不对称密钥,公钥/密钥:使用公钥加密,只有密钥拥有着可以解密(任何人可以用公钥加密信息然后传给密钥拥有者);使用公钥任何人都可以解密,但只有密钥拥有着可以加密(密钥拥有者可向所有人表明身份);对称密钥,必须以安全的方式互换密钥.System.Security.Cryptography 加密类
2014-02-16 15:22:04 380
原创 C++Primer(第五版)学习笔记
为了再一次提高程序设计的综合能力,为了写出更简洁,健壮,优美的代码,决定好好吃透这本书,并结合实际应用总结高效,经典的写法.
2014-02-15 22:49:21 610
原创 (二十一)任务、线程和同步
System.Threading 和 System.Threading.Tasks.Parallel.For();多次执行一个任务,可并行运行迭代,迭代顺序没有定义.使用多线程并行执行此任务
2014-02-14 10:09:43 445
原创 (十九)程序集
程序集是.net应用程序的部署单元,可以包含一个或多个程序集,通常扩展名为exe或dll.与本地exe和dll不同的是,它包含元数据,描述了程序集中定义的所有类型及其成员信息.还提供了程序集中文件的相关信息、版本信息和所使用的程序及信息.它是自我描述的安装单元
2014-02-13 08:55:43 479
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人