C++
文章平均质量分 60
H..b.
努力,奋斗!
展开
-
谜一样的this指针?
this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,都隐式使用 this 指针。当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。this 指针被隐含地声明为: ClassName con...原创 2019-11-04 21:28:53 · 313 阅读 · 0 评论 -
static关键字
前言在 C 语言中,static 关键字不仅可以用来修饰变量,还可以用来修饰函数。使用 static 关键字修饰的变量称为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。需要特别说明的是,静态变量属于静态存储方式,属于静态存储方式的变量却不一定就是静态变量。例如,全局变量虽然属于静态存储方式,但并不是静态变量,它必须由 static 加以定义后才能成为静态全局变量。静态变量作...原创 2019-08-12 20:32:27 · 264 阅读 · 0 评论 -
const关键字
const 在实际编程中用得并不多,const 是 constant 的缩写,意为“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:const int a = 10;con...原创 2019-08-12 18:34:02 · 811 阅读 · 1 评论 -
override 和 final 标识符
实际应用中经常会发现虚函数在C++中会引起很多问题,因为没有一个强制的机制来标识虚函数在派生类中被重写了。virtual关键字并不是强制性的,这给代码的阅读增加了一些困难,因为你不得不去看继承关系的最顶层以确认这个方法是不是虚方法。在派生类中使用virtual关键字会让代码更易读但会出现一些不明显的错误,示例:class B {public: virtual void f(short)...原创 2019-01-29 23:05:21 · 423 阅读 · 0 评论 -
多态(其一)
多态性作为C++的三大特性之一,它不仅增加了面向对象软件系统的灵活性,进一步减少了冗余信息,而且显著提高了软件的可重用性和可扩展性。1.概念所谓多态性就是不同对象在收到相同的消息时,所产生的不同的动作。在C++中,就是指用一个名字定义不同的函数,这些函数执行不同但又相似的操作,从而可以使用相同的方式来调用这些具有不同功能的同名函数。也就是说,可以用同样的接口来访问不同的函数,从而实现“一个接...原创 2019-01-29 22:56:12 · 234 阅读 · 0 评论 -
内存泄漏
概念:内存泄漏是指程序猿自己从堆上申请空间,没有释放后果:程序运行后置之不理,并且随着时间的流失消耗越来越多的内存(比如服务器上的后台任务,尤其是嵌入式系统中的后台任务,这些任务可能被运行后很多年内都置之不理);新的内存被频繁地分配,比如当显示电脑游戏或动画视频画面时;程序能够请求未被释放的内存(比如共享内存),甚至是在程序终止的时候;泄漏在操作系统内部发生;泄漏在系统关键驱动中发...原创 2018-12-31 20:14:16 · 205 阅读 · 0 评论 -
结构体的内存对齐
结构体的内存对齐:一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。 例一: #include <iostream> 使用命名空间性病; ...原创 2017-07-24 11:57:30 · 612 阅读 · 0 评论 -
设计模式------单例模式
一、单例模式的概念单例模式是设计模式的一种,那么设计模式又是什么呢?设计模式(Design pattern)代表了最佳的实践,是软件开发人员在软件开发过程中面临的一般问题的解决方案,这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化,是软件工程的基石脉络,如同大...原创 2018-11-30 19:41:11 · 279 阅读 · 0 评论 -
内存分区
有人说,一个学习过C语言的人,在看到代码时,看到的不是代码,而是一块又一块的内存,那么一个由C/C++编译的程序占用的内存分为哪几个部分呢?1.栈区(Stack):由编译器自动分配释放,存放的是为运行函数而分配的局部变量、函数的参数、返回的数据、返回的地址等等,它的操作方式类似于数据结构中的栈。2.堆区(Heap):一般由程序猿自己分配释放,若程序猿不释放,程序结束时可能由操作系统回收,分配方...原创 2018-11-20 00:06:50 · 272 阅读 · 0 评论 -
C++------初见
首先我们要了解为什么会有C++的出现?之所以要有C++,是因为C语言存在一定的缺陷,为了弥补这些缺陷,才出现了C++,除此之外,在C++中还引入了新的语法特性。下面简单介绍一下:1.C++关键字学习一门新的语言,都要从一个一个字开始,所以我们先来了解一下C++中的关键字。在C++98中,有63个关键字,如下表:这里并不对这些关键字一一介绍,在日常的学习中会慢慢接触到。2.命名空间在C...原创 2018-11-19 09:48:35 · 291 阅读 · 0 评论 -
引用
1.概念引用不是新定义一个变量,而是给已有的变量取了一个别名,编译器不会为引用的变量开辟新的内存空间,而是引用的变量共用同一块内存空间。定义方法: 类型&amp;amp;amp;amp;amp; 引用变量名(对象名) = 引用实体;void Test(){ int a = 10; int &amp;amp;amp;amp;amp;ra = a;//ra为a的引用 cout &amp;amp;amp;amp;lt;&amp;am原创 2018-11-13 18:55:29 · 299 阅读 · 0 评论 -
C++
#include #include #include using namespace std; class String { private:char *_s; public:String(const char* s = "") {_s = new char[strlen(s) + 1];strcpy(_原创 2017-07-05 18:58:38 · 274 阅读 · 0 评论