![](https://img-blog.csdnimg.cn/20200609160833371.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
ZJE_ANDY
这个作者很懒,什么都没留下…
展开
-
C++为什么要用引用而不是指针
我相信有很多刚学完C,再学C++的人都会有个疑惑,引用是干嘛的,为什么不用指针?首先,引用 跟 指针 在作用上没有太多区别,作用都是 当遇到较大的 对象(变量)作为函数的 形参 传递时,用引用或指针可以节省内存的开销,因为他不像按值传递那样,额外要创建临时变量。既然这样,那为什么C++要用引用呢?引用是一段内存的别名,引用的大小跟所代表的变量的大小是一样的,而指针他原创 2017-02-06 14:17:00 · 8214 阅读 · 3 评论 -
C++类实现二叉树的构建和遍历
#include#include #include using namespace std;/*二叉树的结构体*/typedef struct BTree{ int val; struct BTree *left,*right; }BTree;/*二叉树的类,包含着操作二叉树的各种方法*/ class Tree{ public: BTree *create_node原创 2017-02-06 17:03:56 · 11950 阅读 · 0 评论 -
C++static类成员,static类成员函数
1.static类成员在C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。这句话什么意思?就是static不会想普通类数据成员一样每一个类对象都有一份,全部类对象是共享一个static类成员的,例如A类对象修改了static成员为1,那么B对象对应的static类对原创 2017-03-20 14:33:14 · 33026 阅读 · 3 评论 -
C++拷贝构造函数与浅拷贝,深拷贝
0.概述1.默认拷贝构造函数2.浅拷贝与深拷贝3.拷贝构造函数调用的时机0.概述原创 2017-03-20 15:50:57 · 478 阅读 · 0 评论 -
C++友元
1.为什么需要友元2.友元类和友元函数3.友元的一些原则1.为什么需要友元我们都知道,类中private类型的成员,只能由类内部的函数访问,类外部是不能访问的,但如果用了友元,则可以声明一个友元类或者友元函数,他们可以访问类的所有类型成员,包括 protected 和 private。但友元也是有缺点的,就是他令外部可以访问私有成员,破坏了封装性,降低了该类的可靠性原创 2017-03-19 16:40:11 · 289 阅读 · 0 评论 -
C++的继承(三种继承方式)
1.类的3种成员类型2.三种继承方式1.类的三种成员类型如图所示:public , protected, private 三种成员类型,当没表明类型的时候,默认是private的。类外部的意思是:main 函数啊,或者定义全局变量的外部空间啊,其他类空间。如:下面的代码是出错的,因为A类的b变量是protected的,而在main(类外部)中对原创 2017-03-19 15:14:24 · 8796 阅读 · 1 评论 -
C++const函数和const对象
1.const函数:const函数分为函数名前用const修饰和在函数名后用const修饰。1.函数名前用const修饰,只是表示这个函数的返回值是const类型的2.函数名后用const修饰,表示这个函数一定是类成员函数,因为函数名后用const修饰表示的是类对象的常成员函数,这个函数是不能修改类中的成员的,只能读操作不能写操作。2.const对象用const修饰的对原创 2017-03-19 14:22:38 · 336 阅读 · 0 评论 -
C++析构函数后加上virtual的原因
C++析构函数加上virtual是为了防止内存泄漏。用在C++实现多态的时候,其基类要加virtual。原因跟动态绑定有关,大家都知道,多态是通过虚函数实现的,而虚函数又是通过动态绑定实现的。先举个例子:class Base{ public: virtual void function() { cout<<"this is Base's function"<<e原创 2017-03-05 01:51:00 · 5260 阅读 · 1 评论 -
C++中多态怎样由虚函数实现。和纯虚函数介绍
首先,在C++中,多态有两种,函数重载和虚函数。(python中的多态貌似就是只有函数重载..)粗俗地说:继承意味着,子类可以使用父类的方法,而多态,则是父类可以使用子类的方法。网上有一句话很好地解释了多态:多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类原创 2016-12-14 09:58:48 · 438 阅读 · 0 评论 -
C++类对象在各种内存区的构造函数析构函数执行顺序
首先一个前提是,析构函数的执行顺序和构造函数的执行顺序是恰好相反的,即使如果构造函数的顺序是 A,B,C ,那这三个类的析构函数的执行顺序就是C,B,A看代码:#include using namespace std;class C{ public: C(){ cout<<"create C"<<endl; } ~C(){ cout<<"destroy C"<原创 2016-12-22 16:41:52 · 517 阅读 · 0 评论 -
C++类的内存计算,分布
1.C++中,类函数是放在代码段的,用static修饰的类成员变量和函数是放在静态数据区的,这些都不放入类的内存中。2.要是有虚函数(无论多少个虚函数)的话,编译器会自动给类创建一个虚表指针,指向虚表,这个虚表指针占4个字节。3.类的内存计算,默认为4个字节对齐,什么是字节对齐,这里不详细说,可以百度。4.#pragma pack(push)#pragma pack(4)原创 2016-12-22 19:10:05 · 824 阅读 · 0 评论 -
C++文件操作(输入输出流)
1.首先说明一下几个类的关系:如图:ios_base是ios类的基类,然后分别派生出 istream 和 ostream 输入输出类,而iostream 类由继承了 istream 和 ostream 的输入输出。ifstream 类继承了istream ,ofstream 继承了 ostream类。2.文件打开方式:ofstream out;原创 2017-01-16 02:13:21 · 10079 阅读 · 0 评论 -
只有头指针的单链表逆序
void reverse(linklist &L){ p=NULL; q=L; while(q!=NULL) {L=q->next;q->next = p;p=q; q=L;} L=p;}原创 2017-11-16 11:57:14 · 490 阅读 · 0 评论