自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lanzh_

爱编程,爱生活

  • 博客(8)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于函数返回引用的分析?

一、函数返回值和返回引用是不同的函数返回值时会产生一个临时变量作为函数返回值的副本,而返回引用时不会产生值的副本。1.普通函数返回值C++ primer中这样写:函数的返回值用于初始化在调用函数处创建的临时对象。在求解表达式时,如果需要一个地方储存其运算结果,编译器会创建一个没有命名的对象,这就是临时对象。例如:#includeusing namespace std;i

2015-04-30 14:23:16 1568 2

原创 C++标准库---容器作为形参?

通常,函数不应该有 vector 或其他标准库容器类型的形参。调用含有普通的非引用 vector 形参的函数将会复制 vector 的每一个元素。因此,调用含有普通的非引用vector作为形参的函数,无论效率还是资源利用率,都是极大的浪费。从避免复制 vector 的角度出发,应考虑将形参声明为引用类型。但是,事实上,C++ 程序员倾向于通过传递指向容器中需要处理的元素的迭代器来传递容器:

2015-04-29 20:05:27 1924

原创 何时需要强制类型转换?

可能运行程序时,大家或多或少出现过编译器报这样的警告:#includeusing namespace std;int main(){ int i=3; double j=3.99; i*=j; cout<<i<<endl;//11 system("pause"); return 0;}warning C4244: “*=”: 从“double”转换到“int

2015-04-29 15:07:12 2879

原创 C++中new、delete 与new[]、delete[]

在C++中,申请堆内存,使用new或者new[],在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。先看以下例子:#include#includeusing

2015-04-27 20:48:50 658

原创 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析

在用vs写程序,遇到了一些问题,_BLOCK_TYPE_IS_VALID(pHead->nBlockUse是其中的一个,后来在网上查了一下,得到相关信息,特记录一下,以备查看。问题产生原因:1.内存泄漏;所以当程序退出时,系统会收回分配的内存,于是调析构函数,由于内存已被错误地释放,于是就会出现“Debug Assertion Failed”的错误。2.这个assert说明什么问题呢?

2015-04-27 19:38:01 19773 5

原创 C语言---指针与引用的区别

指针与引用的区别      虽然使用引用 (reference)和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。#in

2015-04-26 21:33:49 1922

原创 extern "C"

一、简介extern C extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。

2015-04-20 23:47:37 588

原创 C语言链表基础

实现一个简单的链表#include#include#includeusing namespace std;typedef struct jiaowu{ long num; //学号 float score; //成绩 struct jiaowu *next;}Node;//创建头结点,赋初值为0Node* CreateInfoNode(){ Node

2015-04-02 10:59:48 846

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除