C++
青春都一饷,忍把浮名,换了代码轻狂.
这个作者很懒,什么都没留下…
展开
-
C++中初始化成员列表的三种情况
初始化成员列表的三种情况Lippman的《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表:一,需要初始化的数据成员是对象的情况;二,需要初始化const修饰的类成员;三,需要初始化引用成员数据;现在分别举例说明:一,需要初始化的数据成员是对象`#include <stdio.h> class point { protected: int m_...原创 2019-02-22 14:22:57 · 275 阅读 · 0 评论 -
C++空类中的默认成员函数
默认成员函数:1、默认构造函数2、析构函数3、拷贝构造函数4、赋值运算符(等号:operator=)5、取址运算符(operator&)(一对,一个非const的,一个const的)-----有争议,跟具体编译器相关,有的生成,有的不生成class Empty{public: Empty(); // ...转载 2019-02-26 09:58:15 · 243 阅读 · 0 评论 -
C++学习:回调函数(Callback)
简介:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应可能这些概念性的东西不是太好理解,通俗一点,回调函数就是在两个独立函数或者独立类通信的通道举个例子: 财务处是负责对公司财...转载 2019-03-05 11:22:43 · 349 阅读 · 0 评论 -
面向对象与面向过程
面对对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。面向过程就是:自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在...转载 2019-02-25 20:14:38 · 108 阅读 · 0 评论 -
C++移动构造函数
C++中对象发生拷贝的场景可以分为两种:一种是:被拷贝的对象还要继续使用,另一种是:被拷贝的对象不再使用;第二种一般可以认为是对右值的拷贝,也就是一个临时对象;C++11中引入了移动构造函数,对象发生拷贝时不需要重新分配空间而是使用被拷贝对象的内存,即临时对象的内存,从而提高代码运行效率(作用);class HasPtrMem {public: HasPtrMem() : d(n...转载 2019-02-25 19:41:53 · 342 阅读 · 0 评论 -
C++ 实现去除文本中的重复行
例题:有一个文本1.txt,内容有N行:11113333111133332222……写一段c++的代码可以将重复行去除,内容变为:111133332222……代码如下:#include <iostream> #include <string>#include <fstream> #include <set> using ...原创 2019-02-28 22:15:36 · 1840 阅读 · 1 评论 -
C++什么时候会生成默认构造函数
C++对象可以使用两种方式进行创建:构造函数和复制构造函数。假如我们定义了类A,并使用它创建对象。代码如下:A a,b;A c=a;A d(b);对象a和b使用编译器提供的默认构造函数A::A()创建出来,我们称这种创建方式为对象的定义(包含声明的含义)。对象c和d则是使用已有的对象,通过编译器提供的复制构造函数A::A(const A&amp;)创建,我们称这种创建方式为对象的初始化(...翻译 2019-02-22 21:18:52 · 1639 阅读 · 1 评论 -
C++默认构造函数
默认构造函数默认的构造函数是指为所有参数都提供了默认值的构造函数,通常是指无参的构造函数。比如下面的类Test,它的默认构造函数就是Test()。class Test{public: Test(){} // default constructor} ;如果你没有为你的类提供任何构造函数,那么编译器将自动为你生成一个默认的无参构造函数。一旦你为你的类定义了构造函数,哪怕只是一个...原创 2019-02-22 20:59:04 · 1977 阅读 · 0 评论 -
为什么构造函数不能为虚函数,而析构函数可以为虚函数
1. 构造函数为什么不能为虚函数?a. 存储空间角度: 虚函数的调用需要虚函数表指针,而该指针存放在对象的内容空间中,需要调用构造函数才可以创建他的值,否则即使开辟了空间,则虚表指针为随机值,不会找到构造函数;若构造函数声明为虚函数,那么由于对象还未创建,还没有内存空间,更没有虚函数表地址用来调用虚函数——构造函数了。b. 使用上: 从实现上看,vbtl在构造函数调用后才建立,因而构造...翻译 2019-02-22 16:48:37 · 454 阅读 · 0 评论 -
C++语言 二叉树实现
`#includeusing namespace std;#define BinNodePosi(T) BinNode* //节点位置//BinNode模板类的设计templatestruct BinNode{BinNodePosi(T) parent, lc, rc;T data; int lenght;int size();BinNodePosi(T) insertAsL...原创 2019-03-24 15:04:58 · 436 阅读 · 0 评论