随笔分类 -  C++

摘要:最近看到了一个题目,有必要对重载运算符进行深入理解。 最后输出结果为: 122 03 4444 分析:MyClass obj1(1), obj2(2);对象创建过程中会调用构造函数,所以会输出12,MyClass obj3=obj1;执行时会调用拷贝构造函数来对对象进行构造,而没有进行运算符重载,也 阅读全文
posted @ 2017-12-21 23:02 小丁木 阅读(818) 评论(0) 推荐(0)
摘要:C++中rand()函数可以用来产生随机数,但是是属于伪随机数。 rand()函数用法: 在使用rand()函数的时候,首先需要包含头文件#include<stdlib.h>,用法是int rand(void),产生的随机数范围是0~65536,类型为unsigned int,不能超过范围。rand 阅读全文
posted @ 2017-12-19 00:44 小丁木 阅读(42112) 评论(3) 推荐(1)
摘要:首先看下面代码: 结果为:2642这里涉及到对static变量和全局变量的理解: C:static函数外部定义,是文件静态变量,作用域为文件,生命周期是程序生命期。函数内定义,是函数内部的静态变量,作用域为函数,生命周期是该程序生命期。其中,函数中,语句组的内部静态变量,作用域为该语句组,生命周期是 阅读全文
posted @ 2017-08-30 00:42 小丁木 阅读(567) 评论(0) 推荐(0)
摘要:最近看到了腾讯的一道笔试选择题,觉得很有意思,主要是涉及到数据对齐问题。 下面代码在64位计算机上运行结果是多少? 最后运行结果是144,通过第十二行出注释的打印语句我们可以知道结构体st_t的大小为48,和我们所想的不太一样,后来发现是数据对齐问题,在64位计算机上,地址是占8个字节,所以指针大小 阅读全文
posted @ 2017-08-23 21:11 小丁木 阅读(1123) 评论(0) 推荐(0)
摘要:在C++中经常会遇到有关类对象的浅复制与深复制的问题,也是容易出错的地方。 查找了相关资料,有关浅复制与深复制的定义为:对类进行复制的时候按位复制,即把一个对象各数据成员的值原样复制到目标对象中。当类中涉及到指针类型数据成员的时候,往往就会产生指针悬挂问题。 从运行结果我们可以看到程序只是调用了一次 阅读全文
posted @ 2017-08-21 23:28 小丁木 阅读(7926) 评论(1) 推荐(1)
摘要:最近在看程序员面试宝典的书中遇到了传递动态内存的问题。 书上的解释是:在函数GetMemory(char *p,int num)中,*p实际上是主函数中str的一个副本,p申请了内存,只是把p指向的内存地址改变,而str并没有改变,所以str依然没有获得内存,在执行字符串复制时就会出错。而且每次p申 阅读全文
posted @ 2017-08-21 01:43 小丁木 阅读(1047) 评论(0) 推荐(1)
摘要:转自博客:http://blog.csdn.net/wangweitingaabbcc/article/details/7720979# 在c++的世界中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类,和基类向子类的强制类型转换。 向上强制类型转换 切割:覆盖方法和子类数据丢失的 阅读全文
posted @ 2017-08-12 22:41 小丁木 阅读(3720) 评论(0) 推荐(0)
摘要:RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运算符 阅读全文
posted @ 2017-08-12 22:33 小丁木 阅读(521) 评论(0) 推荐(0)
摘要:c++中动态多态性是通过虚函数来实现的。静态多态性是通过函数的重载来实现的,在程序运行前的一种早绑定,动态多态性则是程序运行过程中的一种后绑定。根据下面的例子进行说明。 运行结果为: 这里并没有得到我们需要的面积,基类指针是s1,s2是用来指向基类(Shape)对象的,这里我们用基类指针指向了派生类 阅读全文
posted @ 2017-08-12 17:19 小丁木 阅读(536) 评论(0) 推荐(0)