随笔分类 -  c++

摘要:如何编译测试文件生成程序和排序程序 c++,Vs2013下开发,win10 64。 2015/10/30 如何生成测试文件 1、随机生成一个字符串 即: 随机生成一个长度n的字符串; 思想 : 新建一个空的字符串,然后每次在 字符表 的字典中随机取一个元素,添加到字符串中,重复n次; 但是效率比较低 阅读全文
posted @ 2018-10-14 14:15 clq.lib 阅读(2340) 评论(0) 推荐(0)
摘要:只对showname()操作,显示类名,问题来自伊世超 父类指针访问子类成员,dynamic_cast 阅读全文
posted @ 2018-10-12 20:23 clq.lib 阅读(159) 评论(0) 推荐(0)
摘要:```cpp // design by novus 2009 // some right reserved include include using namespace std; double Eval2(istream& iss) { double Eval0(istream& iss); do 阅读全文
posted @ 2018-10-12 20:22 clq.lib 阅读(189) 评论(0) 推荐(0)
摘要:C printf() 答案: c中printf计算参数时是从右到左压栈的 阅读全文
posted @ 2018-10-12 20:19 clq.lib
摘要:2014/11/9 上面的代码有一个潜在的问题: 工厂方法对ret指向的对象的引用在函数返回时已经结束,但函数没有释放ret指向的对象,埋下了内存泄露的隐患。(例如只执行factoryMethod(),没有接收返回对象的指针)。 但是如果在函数返回前就执行release(),这显然是不合适的,这样再 阅读全文
posted @ 2018-10-12 20:13 clq.lib 阅读(110) 评论(0) 推荐(0)
摘要:背景: 很多时候我们写代码,想要看看函数或者算法执行的对不对、是否达到了我们想要的效果, 那么,最直接的办法是把函数或者算法所操作数据显示出来看看,这样就需要写一些 直接输出的代码; 但是一旦代码达到了所要的效果,要发布了,或者给使用者使用了,这样就无需 , 这样我们又要手工去删除或者注释很多 ... 阅读全文
posted @ 2015-11-27 14:57 clq.lib 阅读(3467) 评论(1) 推荐(0)
摘要:前一篇 http://www.cnblogs.com/iois/p/4085173.html 写有些地方不够准确,重新整理了一遍 函数重载(Function Overloading) C++允许同一范围(scope)( 在同一个类中 )内具有多个名称相同的函数。这些函数成为 。 C++ 使用函数声明 阅读全文
posted @ 2015-11-22 21:22 clq.lib 阅读(325) 评论(0) 推荐(0)
摘要:C++类内存分布 转载自Jerry19880126 博客园 的文章 在上面这篇文章的基础上做了些整理。 主要讨论了C++类对象的内存分布结构。 来看看 编译器 是怎么处理 类成员内存分布 的,特别是在 继承 、 虚函数 存在的情况下。 原文地址:http://www.cnblogs.com/j... 阅读全文
posted @ 2015-11-22 15:26 clq.lib 阅读(567) 评论(0) 推荐(0)
摘要:C++的多态性是通过动态绑定实现的 非虚函数是在 编译时绑定 的; 通过对象进行的函数(虚函数,非虚函数)也是 编译时绑定 的; C++编译器在编译的时候,要确定每个对象调用的函数(要求此函数是非虚函数)的地址,这称为早期绑定(early binding) 当且仅当通过指针或引用调用虚... 阅读全文
posted @ 2015-11-19 22:04 clq.lib 阅读(417) 评论(0) 推荐(0)
摘要:最近在看C++动态绑定问题时(理解静态绑定时)发现的问题:能用空指针调用类的成员函数(gcc,vs2013下都可以)。 例子: C++类的内存布局 类的成员函数与成员对象内存中不放一起。 对于类成员函数而言,此类的所有对象共用这个成员函数体,并不是一个对象对应一个单独的成员函数体。 在... 阅读全文
posted @ 2015-11-19 21:38 clq.lib 阅读(758) 评论(0) 推荐(0)
摘要:执行后结果为: 即:生成派生类对象时,先执行父类的构造函数,再执行类成员变量的构造函数(依照声明顺序),最后执行派生类构造函数中的内容。 即: 1. 父类的构造函数 2. 类成员变量的构造函数(依照声明顺序), 3. 派生类构造函数 析构顺序相反。 阅读全文
posted @ 2015-11-09 13:01 clq.lib 阅读(195) 评论(0) 推荐(0)
摘要:switch case,笔试中的一个简单的考点。 一旦case匹配,就会顺序执行后面的程序代码, 而不管后面的case是否匹配,知道结束。 阅读全文
posted @ 2015-10-27 09:50 clq.lib 阅读(170) 评论(0) 推荐(0)
摘要:1、sizeof operatorsizeof是C语言的一种 单目操作符 ,如C语言的其他操作符++、 等,它并不是函数.Queries size of the object or type.1) returns size in bytes of the object representation... 阅读全文
posted @ 2015-10-21 09:35 clq.lib 阅读(196) 评论(0) 推荐(0)
摘要:四点区别:可否为空,可否修改,使用时是否需要判断,使用场景 1. 非空区别 。 引用必须指向某个对象,而指针可以指向空。 2. 可修改区别 。 引用总是与初始化时的那个对象绑定,不可变更;指针可以重新赋值,指向另外一个对象。 3. 合法性区别 。 引用使用前不需要测试其合法性;但是指针使用前... 阅读全文
posted @ 2015-07-11 10:17 clq.lib 阅读(293) 评论(0) 推荐(0)
摘要:### N皇后问题经典的回溯算法```cpp// 判断当前棋子位置是否符合规则,是则返回1,否则返回0// j:第j行,p[j]:当前q的位置int judge(vector &p, int j) { for (int i = 0; i > NQueens(int n){ vec... 阅读全文
posted @ 2015-06-16 10:44 clq.lib 阅读(208) 评论(0) 推荐(0)
摘要:一个由C/C++编译的程序除了存放函数二进制代码的程序代码段(code段)外,数据占用的内存大致分为以下几个部分:1、栈区(stack) 存放局部变量、函数参数、返回数据、返回地址等。系统自动分配释放 ,其操作方式类似于数据结构中的栈。需要注意的有三点: 第一, 退栈后销毁进栈时定义数据,请看下... 阅读全文
posted @ 2015-05-29 09:44 clq.lib 阅读(408) 评论(0) 推荐(0)
摘要:基类指针引用派生类对象 用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的; 但是只能引用 基类成员 。 若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。 (~~解决该问题的答案是虚函数和多态性~~??? 这个说法不正确吧) 派生类指针引... 阅读全文
posted @ 2015-05-29 09:40 clq.lib 阅读(1491) 评论(0) 推荐(0)
摘要:写的不是很明白,后来又重新整理过了,在:http://www.cnblogs.com/iois/p/4986790.html函数重载(Function Overloading)C++允许同一范围(scope)(在同一个类中)内具有多个名称相同的函数。这些函数成为重载函数(overloaded fun... 阅读全文
posted @ 2014-11-09 15:45 clq.lib 阅读(587) 评论(0) 推荐(0)
摘要:翻译自msdn,如有不妥当的地方,欢迎指正。声明(Declaration):声明引入了一个名字以及其类型进入程序中,并没有定义一个相关的对象或者函数。然而,很多声明都作为定义使用。定义(definition):定义提供了 允许编译器为对象分配内存和生成函数代码的信息。生命周期(lifetime):一... 阅读全文
posted @ 2014-11-09 14:31 clq.lib 阅读(408) 评论(0) 推荐(0)
摘要:最近在研究C++ 左值 右值,搬运、收集了一些别人的资料,供自己记录和学习,若以后看到了更好的解释,会继续补充。(打“?”是我自己不明白的地方 ) 参考:《Boost程序库探秘——深度解析C++准标准库(第2版)》 9787302342731 左值:一个可以用来存储数据的变量,有实际的内存地址(变量 阅读全文
posted @ 2014-09-30 10:38 clq.lib 阅读(588) 评论(0) 推荐(0)