offergogo
offergogo
全部文章
未归档
C++(42)
C语言(1)
linux(18)
python(1)
剑指offer(2)
机器学习(1)
深度学习(1)
设计模式(1)
归档
标签
去牛客网
登录
/
注册
offergogo的博客
全部文章
/ 未归档
(共88篇)
智能指针及其解析
1.智能指针:智能指针就是智能的、自动化的管理指针所指向的动态资源的释放,并且可以如同指针一样使用。智能指针是RALL(初始化立即获取资源)思想的一种实现,其中初始化利用构造函数,之后将资源保存起来最后让析构函数自动清理。 2.引入智能指针原因:总的来说,是防止程序执行流的改变、或者人为因素造...
2017-09-07
0
651
分析菱形继承
C++中的继承体系,有单继承、多继承、还有复杂的菱形继承,今天我们只讨论菱形继承,以及菱形继承存在的问题,最后我们针对问题给出解决方案。 (1)什么是菱形继承? 顾名思义,菱形继承就是,几个类的继承关系呈菱形状。为此,我们举例解释: 题目:有4个类,Person类、Student类、Teacher...
2017-08-02
0
641
C++多态及其对象模型
一、多态 所谓多态,就是“多种形态”。 在面向对象的方法中一般是这样描述多态的:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。多态性的表现形式之一是:具有不同功能的函数可以用同一个函数名,这样就可以实现用一个函数名调用不同内容的函数。 1.静态多态 #in...
2017-08-02
0
410
C++写时拷贝的不同方案(String类)
String类的写时拷贝,不同方案分析。 在使用String类时使用浅拷贝会产生一块空间析构多次的问题,所以产生了深拷贝,每次对对象进行值和空间同时拷贝,但这样会使用更多的空间。为了避免产生更多的空间,引入写时拷贝,当对空间进行更改时,检查是否有除自己外别的对象使用这块空间,若有,则自己重新开辟空...
2017-07-24
0
468
C++面试中String类的一种写法
#include <utility> #include <string.h> class String { public: String() : data_(new char[1]) { *data_ = '\0'; } String...
2017-07-21
0
394
实现复数类及简单操作
复数类 复数包含实部和虚部,表示为:a+bi 的形式 复数可以比较两个复数的大小; 两个复数是否相等; 复数前置后置自增自减等操作。 #include <iostream> using namespace std; class Complex { public: ...
2017-07-10
0
373
日期类及其各种操作
实现一个日期类,可以进行日期的各种操作。 例如: 日期的大小,相等或不等的比较; 日期的前置后置自增自减; 日期+天数; 日期-天数; 日期-日期; #include <iostream> using namespace std; #include <assert....
2017-07-10
0
381
C++基础之引用与指针的区别与联系、常引用使用时应注意的问题
指针和引用主要有以下区别: 引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。 引用初始化后不能被改变,指针可以改变所指的对象。 不存在指向空值的引用,但是存在指向空值的指针。 注意:引用作为函数参数时,会引发一定的问题,因为让引用作参数,...
2017-07-04
0
401
在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?
首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函...
2017-07-02
0
537
C++重载详解
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似: voi...
2017-07-01
0
358
首页
上一页
1
2
3
4
5
6
7
8
9
下一页
末页