C++学习笔记
鼹鼠的萝卜
这个作者很懒,什么都没留下…
展开
-
const成员变量与成员函数
1. const成员变量 const修饰的成员变量只能用构造函数初始化列表进行初始化,不能进行赋值初始化,引用和const一样,只能在初始化列表进行初始化。 class Date { private: int _year; int _month; const int _day;//声明const变量 public: Date(int year=1990,i...原创 2018-03-26 15:37:46 · 882 阅读 · 0 评论 -
C++之智能指针
C++不同于java的一个方面就在于程序员自己动态开辟的空间要自己手动释放,也就是说C++让程序员自己管理自己的内存,这一方面提高了编译器的效率,减轻了编译器的负担,同时另一方面,这也给我们带来了内存安全的问题。内存的管理永远是C++程序员需要慎重的地方。 内存的常见错误各种各样,都是对内存的非法操作,特别是当我们引入异常以后,程序会变得非常的跳脱,这导致了最后我们开辟的内存往往会泄露,...原创 2018-05-21 17:28:16 · 355 阅读 · 0 评论 -
C++虚表
虚函数 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数称为虚函数,语法格式: virtual 成员函数名() 重写: 必须是虚函数 子类定义了一个和父类完全相同的成员函数,包括返回值类型、函数名、参数列表 重写也称为覆盖 上代码镇楼: class A { public: virtual void func() { ...原创 2018-05-09 16:02:10 · 1329 阅读 · 0 评论 -
探究new和delete的秘密
简介: new 和 delete 是 C++ 用于管理 堆内存 的两个运算符, C 语言中的malloc 和 free是函数,而C++中new 和 delete 是运算符,malloc和new都属于动态的分配内存。 .有了malloc、free为什么还要有new、delete malloc和free是C++/C语言的标准库函数,new/delete是C++中的运算符,都可用于...原创 2018-04-20 16:01:28 · 565 阅读 · 0 评论 -
单继承与多继承与boss菱形继承
单继承 一个子类只能有一个直接父类称为单继承。简单的一对一关系。 多继承 1. 一个子类有多个直接父类称为多继承。一对多关系。 class AA { public: int _a; }; class BB { public: int _a; int _b; }; class CC :public BB,public AA { publ...原创 2018-04-22 17:48:52 · 686 阅读 · 0 评论 -
浅谈C++继承
如今的面向对象的语言特性都包括抽象、封装、继承、多态四个特点,C++也同样,那么什么是继承? 继承的基本概念 继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。C++的继承关系就好比生活中的家庭关系一样,比如说你家里有两个矿,那么作为孩子的你将来肯定是要继承你父母给你留的财产,并在原有的基础上你会开辟自己...原创 2018-04-22 12:08:17 · 378 阅读 · 0 评论 -
static类成员、static类函数
1.static类成员 1.静态数据成员是一种特殊的数据成员,以关键字static修饰。 2.静态的数据成员在内存中只占一份空间,保存在全局区(静态区),即静态数据成员属于类而不属于对象,为所有实例(对象)共享,当某一个实例(对象)修改了该静态成员变量,其修改值为所有实例(对象)可见。 3.静态的数据成员不占用对象的空间,保存在全局区,所以声明多个对象时,静态的数据成员依然只在全...原创 2018-03-26 23:32:56 · 544 阅读 · 0 评论 -
C++中inline的用法
-引入inline的原因 为了解决一些频繁调用的函数大量消耗栈空间的问题,C++特地引入inline修饰符,表示为内联函数。编译时C++编译器会在调用内联函数的地方展开内联函数,没有函数压栈的开销,内联函数提升程序运行的效率。 class Date { public : void Func () // 定义在类内部默认为内联函数 {} void Display ()...原创 2018-03-26 16:02:02 · 387 阅读 · 0 评论 -
引用和指针那些事
对一个数据建立一个“引用”,其作用是为一个已经定义的变量起一个别名 【1】引用的格式 类型& 引用的变量名(别名)=定义过的变量名 比如有一个变量a,想给他起一个别名: int a=10; //定义一个变量a int& b=a; //声明b是a的引用 cout<<a<<endl; //10 cout<<b&...原创 2018-03-19 17:02:22 · 298 阅读 · 0 评论 -
强制类型转换
C++ 在设计中一直强调类型安全,而且也采取了一定的措施来保障这条准则的执行。但是,从C继承而来的强制转型却破坏了C++类型系统,C中的强制转型可谓是“无所不能”,其超强的能力给C++带来了很大的安全隐患。强制转型会引起各种各样的麻烦,有时这些麻烦很容易被察觉,有时它们却又隐藏极深,难以察觉。 C++兼容C,所以C++提出了自己的一套类型转换机制,分别是:static_cast、rein...原创 2018-08-08 13:57:01 · 539 阅读 · 0 评论