- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 codeup1928代码记录
#include<cstdio>int month[13][2] = { // 平年和闰年的每个月的天数 ,核心部分 {0,0}, {31,31}, {28,29}, {31,31}, {30,30}, {31,31}, {30,30}, {31,31}, {31,31}, {30,30}, ...
2019-04-16 21:55:46
256
转载 #pragma once 与 #ifndef 解析
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句
2017-10-10 12:36:21
336
原创 函数名称前面加引用“&”或指针符号“*”的意思
学习笔记:(一)函数名称前面加引用符号“&”,代表该函数返回值类型是引用。如:int &operate+(...);(二)函数名称前面加指针符号“*”,代表它是函数指针。函数指针是一个指向函数的指针,函数指针表示一个函数的入口地址。使用函数指针的好处就是在处理“在运行时根据数据的具体状态来选择相应的处理方式”这种需求时更加灵活。定义一个函数指针指针是变量,所
2017-10-10 08:55:29
39917
原创 c++中为什么要有静态成员函数?
静态变量学习笔记:我们知道,当调用一个对象的非静态成员函数时,系统会把该对象的起始地址赋给成员函数的this指针。而静态成员函数并不属于某一对象,它与任何对象都无关,因此静态成员函数没有this指针,不能访问本类中的非静态成员。 可以说静态成员函数的出现就是为了处理静态成员变量的。在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共
2017-10-10 07:50:43
6374
2
转载 C++中两个类简单互相包含会形成死循环
今天突然想起一个C++的问题,如果一个类A包含类B的实例,而实例B也包含另一个类A,这种方式的代码应该怎么写,按照一般的开发者的想法的代码如下:文件A.h#include "B.h"#include using namespace std;class A{public: int i; B b;}1234567891011文件B.h#inclu
2017-10-09 19:34:24
643
转载 c++中有些重载运算符为什么要返回引用?
1. c++中有些重载运算符为什么要返回引用,单单为了避免析构再构造吗?不是。「有些」重载运算符要返回的引用,是为了返回它本身。如class TestClass { private: int number; public: TestClass& operator+=(const TestClass& rhs) { //
2017-10-09 18:23:51
3469
1
转载 c++返回一个对象
当函数返回类对象的时候,c++编译器会进行返回值优化返回值优化(Return value optimization,缩写为RVO)是C++的一项编译优化技术。即删除保持函数返回值的临时对象。这可能会省略两次复制构造函数,即使复制构造函数有副作用。[1][2]典型地,当一个函数返回一个对象实例,一个临时对象将被创建并通过复制构造函数把目标对象复制给这个临时对象。C++标准允许
2017-10-09 18:11:27
1563
原创 5,给引用赋值意味着什么?
引用就是另外一个对象的别名,给引用赋值,就是将引用指向这个对象。此后对引用的任何操作,就是对这个对象的操作给引用赋值时应注意的问题: 记住:引用就是目标对象的指示物。 所以当定义一个引用时,必须给引用赋值,将它和某个对象联系起来。并且引用和它所指向的对象之间的这种指示关系一旦确定就不能更改,也就是说,不能修改引用的初始指向,将其指向另外一个对象,引用和它所指向
2017-10-06 13:09:39
696
原创 4,将引用作为函数的参数有哪些特点
我们不仅要理解引用,还要对函数的三种传递参数方式了如指掌。我总结了一下,将引用作为函数参数有如下特点(就不上代码了): 1,传递引用和传递指针的作用其实是一样的。这时,被调函数的形参就被当成原来的主调函数实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应目标对象(在主调函数中)的操作 2,使用引用传递函数的参数,在内存中没有产生实参的副本,它是直
2017-10-06 12:40:28
2476
原创 什么是引用?声明和使用引用时要注意哪些问题?
专业地讲,引用就是某个目标变量的别名(alias),对引用的操作就是对变量的直接操作,它们的效果是完全一样的。声明一个引用时,必须要对其初始化,将其与某个变量相关联。 引用声明完毕后,相当于目标变量有两个名称----原名和引用名,不能把引用名再做为其他变量的的别名。声明一个引用,不是新定义一个变量,他只表示该引用是目标变量的一个别名。 引用不是一种
2017-10-03 21:36:44
4008
原创 二叉树创建函数中一定要用指针的引用void createtree(BiTree *&T)或者用指针的指针void createtree(BiTree **T)
如果Create的参数不是指针的引用,main中 Create(T)是把指针T指向的地址传进去了. 注意,只是地址.然后你在Create函数内部申请内存时, 把这个地址给改变了, 但是因为你传的是一个地址, 这个地址本身跟T无关,T仅仅是指向了这个地址而以. 所以Create(T)之后, T还是指向原来的地址,并未改变。如果main函数里是:BiTree *T; 那么经过createt
2017-10-01 22:01:06
10138
1
转载 内存中常见异常值的解释(比如0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值)以及关于VC 中 debug和Release模式下的变量初始化问题
* 0xcccccccc : Used by Microsoft’s C++ debugging runtime library to mark uninitialised stack memory* 0xcdcdcdcd : Used by Microsoft’s C++ debugging runtime library to mark uninitialised heap memor
2017-10-01 18:17:05
416
原创 c++的模板类有什么好处?
c++模板类给程序开发带来了非常大的方便,我总结了c++模板类的好处如下1:可用来创建动态增加或减少的数据结构2:它与某种特定类型无关,因此代码可重复使用3:它在编译时检查数据类型而不是运行时检查数据类型,保证了类型的安全4:它是平台无关的,具有很好的移植性
2017-09-29 23:25:51
5090
原创 运算符与表达式
思考:下面四个表达式是否正确,如果正确请给出运算后的答案int a=4;1,a+=(a++); :正确,结果为9 ,a++是在4+4完成后才进行的,2,a+=(++a); :正确,结果为10,++a先完成a=5,然后5,5+5=103,(a++)+=a; :错误,因为a++在后面才进行,赋值运算符左边不是一个有效变量,不能进行赋值。可改为(
2017-09-29 23:10:52
191
转载 c++中为什么要用引用?
我的总结:引用的好处之一就是在函数调用时在内存中不会生成副本。引用总结(1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。(2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。(3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所
2017-09-23 17:31:13
6357
3
转载 头插法创建单链表代码实现
/* 随机产生n个元素的值,建立带表头结点的单链线性表L(头插法) */void CreateListHead(LinkList *L, int n){LinkList p;int i;srand(time(0)); /* 初始化随机数种子 */*L = (LinkList)malloc(sizeof(Node));(*
2017-09-19 23:25:28
5415
1
转载 新手学单链表的几个困惑
学习了几天数据结构,今天下午自己写了一个单向链表的程序。我也是新手,所以刚开始学习数据结构的菜鸟们(有大牛们能屈尊看一看,也是我的荣幸)可以和我一起共同学习、讨论,当然也很高兴能指出我的错误,因为这是我们一起成长的过程。本代码包含我在写程序时的一些个人理解的说明和一些注释(如果那里说错了,望大家来指正),下面就进入正题了。首先,这是个单向链表的代码,下面是我找的一张单向链表的示意图。
2017-09-19 23:20:05
471
转载 c++中std::string的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str
2017-09-03 08:32:32
3609
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人