![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 67
xy913741894
这个作者很懒,什么都没留下…
展开
-
学生管理系统设计与实现(C++实现)
一.内容1、设计一个学生类Student,包括姓名,学号,性别,籍贯,年龄,出生日期和住址,其中"出生日期"定义为一个"日期"类(具有属性:year(年),month(月),date(日))内嵌子对象。2、具有数据的录入、显示、保存、查询(按学号或姓名查询)、修改和删除功能。3、对Student类重载"=="运算符和"="运算符,"=="运算符判断两个Stude原创 2016-06-26 16:48:40 · 36784 阅读 · 8 评论 -
仿函数(functors)使用
我们都知道C++有一个标准库STL,熟练使用STL可以提高我们开发的效率。可能很多人都熟悉诸如vector,list,map等容器,但是作为STL六大组件的仿函数则不太了解,或许有人说,这是个什么东西?学了有什么好处?仿函数,它行为类似函数,可以作为算法的某种策略,帮助我们更好的使用算法。我们简单看一个例子://排序一组数据#include <iostream>#include <vector>原创 2017-05-07 15:04:15 · 891 阅读 · 0 评论 -
CopyOnWrite(COW)的优缺点
http://blog.jobbole.com/104707/转载 2017-06-04 23:26:15 · 1239 阅读 · 0 评论 -
常用的C++11特性(面试易考)
大二的时候看过《C++Primer》,了解过C++11,因此就在简历上写上了解C++11,结果就是频频被问到有关C++11。。。发现自己答的并不算太好~因此,简单总结一下,我在找实习的过程被问到的C++11特性。1. nullptr注意在C++中NULL仅仅是define NULL 0的一个宏定义,因此,有时候会产生歧义比如f(char*)和f(int),参数传NULL的话到底该调用哪个?事实上,在原创 2017-06-02 23:15:45 · 10620 阅读 · 0 评论 -
C++中文件读取处理(按行或者单词)
前段时间参加蓝桥杯,遇到一些题目,题目本身不难,按照常规思路写代码即可,但是我忘了如何读取文件了。。。面对一堆数据楞是写不出。还有几天是蓝桥杯的决赛,所以为了避免踩同样的坑,我打算通过实例复习下文件读写。文件读写需要引fstream,如果对fstream不了解的话,可以查一查官方的文档cplusplus这个网站。一般常用的函数就是open,close,getline…具体的函数不会了直接查一下,学会原创 2017-05-22 17:46:14 · 14549 阅读 · 0 评论 -
反转字符串
反转字符串s = "123456"打印出654321这里面有2种想法:改变字符串s = “654321”,直接打印逆序打印字符串,不改变字符串这里我都简单实现了一下:void reverse_c(char* str) //c语言实现{ if (*str == '\0') return; reverse_c(str+1); putchar(*str);原创 2017-06-10 17:19:20 · 346 阅读 · 0 评论 -
只能生成栈上对象,堆上对象,不能继承,单例模式
1.设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象 4.单例模式之所以把这4道题放在一起,是因为他们有着相似之处。 在C++中,类的对象建立分为两种,一种是静态建立,如A a; 另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直原创 2017-07-16 17:18:50 · 627 阅读 · 0 评论 -
RAII和智能指针的实现
RAII在C++effective一书中讲到,RAII是“Resource acquisition is initialization”,直译为“资源获取就是初始化”。它是基于这样的原理,栈的变量会自动销毁,(自定义类型对象会调用析构函数)。它是将管理资源变为管理对象,将资源封装成类,利用构造函数来获取并初始化资源,析构函数来释放资源,从而保证资源的正确获取,初始化以及释放。从而避免了因此异常等其他原创 2017-04-05 12:14:30 · 2144 阅读 · 0 评论 -
C++四种类型转换
const_cast主要用于删除变量的const属性,便于赋值const int a = 2;int* p = const_cast<int*>(&a );*p = 3;reinterpret_cast仅仅是重新解释类型,没有二进制的转化,主要用于:指针,整数之间的互相转化在指针类型(尤其是函数指针)之间进行转换int *ip;char *pc = reinterpret_cast<ch原创 2017-08-15 19:49:15 · 348 阅读 · 0 评论 -
STL空间配置器allocator详解
stl六大组件简介我们知道,stl有容器,空间配置器,适配器,迭代器,仿函数以及算法这6个组件,它们六者关系大概如下:容器通过配置器取得数据存储空间,算法通过迭代器获取容器内容,仿函数可以协助算法完成不同的策略变化,配接器可以修饰或套界仿函数。侯捷在《STL源码剖析》一书讲到:因此我们需要先去学习空间配置器。预备知识一般来说,我们习惯的C++内存配置和释放操作是这样的:class A {};A*原创 2017-03-27 21:02:39 · 13057 阅读 · 9 评论 -
解析虚函数表和虚继承
之前大二在学C++的时候一直对虚函数和虚继承有些晕(其实好像就是对virtual这个关键字不太熟悉)现在又学习到了一些,对虚函数表和虚继承的机制有了一点更深入的了解。 关于虚函数以及虚继承的基础知识,我自己也总结了一下,点击浅谈C++多态和C++继承可查看,在继承的总结的时候,我没有总结关于虚继承的知识,而且在多态总结也没有设计到太多的虚函数的知识,我是想把这两块集中在一起讲下,也算是自己对vir原创 2016-10-31 11:48:56 · 4915 阅读 · 5 评论 -
C++中struct和class的区别
一、 C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!! 最本质的一个区别就是默认的访问控制,体现在两个方转载 2016-09-26 17:31:21 · 478 阅读 · 1 评论 -
C++中String类模拟实现以及深拷贝浅拷贝
在C语言中/C++中,字符串是一个应用很广泛的类型,也是很基础的类型,C语言并没有直接处理字符串的操作而是采用字符指针和字符串数组进行操作,而在C++中标准库为我们封装了一个字符串的类供我们使用,使用需要#inlcude 头文件。我们也可以自己模拟实现一个简单的String类。在模拟实现String类的过程中,不可避免的会遇到深拷贝浅拷贝的问题,下面就深拷贝浅拷贝做一个简介。所谓深拷贝浅拷贝,原创 2016-10-22 11:18:13 · 1295 阅读 · 0 评论 -
构造函数和this指针浅谈
什么是构造函数类通过一个或者多个特殊的成员函数来控制其对象的初始化过程,其任务是初始化类对象的数据成员。构造函数的一些特性:1. 无论何时只要类的对象被创建,编译器就自动调用构造函数,而且在对象的生命周期内只且只调用一次。2. 构造函数名字与类名相同,且没有返回值。3. 构造函数可以重载,不同的构造函数之间必须在参数数量或者类型上有所区别4.原创 2016-09-26 23:20:00 · 2904 阅读 · 0 评论 -
c++顺序表动态版本
在C语言中,我们实现了顺序表的动态版本,即可以改变大小的顺序表。具体代码可见http://blog.csdn.net/xy913741894/article/details/52504016而在C++中,我们也可以用类来封装实现一个顺序表,其思想和C语言基本类似,不再赘述。class SeqList{public: SeqList() : _pData(new DataType[IN原创 2016-10-24 20:46:57 · 561 阅读 · 0 评论 -
C++继承
众所周知,C++有几大特性:抽象,封装,继承,多态,最近刚刚复习到了继承(inheritance),做一个小总结。首先为什么要有继承?继承又是用来干什么的?根据百度百科所写,继承机制,就是利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。上原创 2016-10-24 22:19:02 · 613 阅读 · 0 评论 -
C/C++中##和#宏
在c语言/c++中,宏(Macro)是属于编译时期(而非运行时期)的概念,采用关键字define进行定义。它只是一种简单的字符串替换,根据是否带参数分为无参和带参。它的作用还是很大的,比如提高可移植性,可读性,方便性等等,常见就是替换变量,防止重复包含头文件等#define MAX 10#ifndef __HEAD_H__#define __HEAD_H__原创 2016-10-15 18:24:48 · 338 阅读 · 0 评论 -
C++日期类Date的实现
在学C++类的时候,日期类是一个很基础也很重要的类,所以有必要实现一下。常规日期类的本身并不复杂,实现的过程主要涉及到了一些构造函数,拷贝构造函数,以及各种运算符的重载等,而难点主要在于如何保证日期的有效性,比如我们知道年必须为正数,月都是1-12之间的整数,各个月的天数不同以及闰年2月天数的变化等等,如何将这些体现在我们对于一个日期类对象进行自增,自减以及加减多少天得出正确的日期等运算中。原创 2016-10-17 09:27:15 · 8691 阅读 · 0 评论 -
浅谈C++多态
最近复习到了C++的多态性,我想把多态性的一些知识点进行下梳理总结。本文所有代码均在windows10的VS2013平台上测试什么是多态?多态性(polymorphism)据说最早源自希腊语,从字面上理解就是多种形态,多种形式。具体到C++这种面向对象(OOP)的语言中,其实就是“一种接口,多种实现(方法)”。 多态可分为静态多态和动态多态,具体的分类情况如下:静态多态和动态多态原创 2016-10-26 22:58:50 · 11621 阅读 · 2 评论 -
回调函数,函数指针
如何获取到类中函数指针//A类与B类的定义class A{public: void Test() { cout << "A::Test()" << endl; }};class B : public A{public: void Test() { cout << "B::Test()" << endl; }原创 2017-08-15 20:38:08 · 380 阅读 · 0 评论