C++
sinse_
这个作者很懒,什么都没留下…
展开
-
C++不能重载的运算符
C++中绝大部分运算符都是可以被重载的。不能重载的运算符只有5个:. (成员访问运算符).* (成员指针访问运算符):: (域运算符)sizeof (长度运算符)?: (条件运算符)前两个运算符不能重载是为了保证访问成员的功能不能被改变,域运算符合sizeof运算符的运算对象是类型而不是变量或一般表达...转载 2018-03-17 15:49:50 · 363 阅读 · 0 评论 -
C++学习笔记(new delete运算符)
在c++中,释放new分配的内存空间时,使用delete和delete[]是不是有区别?①如果new得是一个变量,那么使用delete就可以。但是如果new得是一个数组,使用delete的话只能释放数组的第一个元素占用的内存,这会造成严重的内存泄漏的。② 使用new申请的数组应该使用delete[]来销毁它。③new分配的内存不delete会泄漏。④由new分配的内存空间是连续的。⑤如果当时内存无...转载 2018-03-22 10:47:31 · 672 阅读 · 0 评论 -
C++学习笔记(友元类)
友元类:声明友元类的一般形式: friend 类名;友元类的注意事项:(1)友元的关系是单向的而不是双向的;(2)友元的关系不能传递 在实际工作中,除非有必要,一般并不把整个类声明为友元类,而止把有确切需要的成员函数声明为友元函数,这样更安全。友元函数的优点:有助于数据共享,提高程序的效率。友元函数的缺点:OOP(面向对象程序设计)一个基本原则是封装性和信息隐蔽,而友元函数却可以访问其他类的私有成...转载 2018-03-14 15:40:13 · 166 阅读 · 0 评论 -
C++学习笔记(类模板)
模板(template)类模板的例子:template <class numtype>class Compare{public:Compare(numtype a,numtype b){x=a;y=b;}numtype max(){return (x>y)?x:y;}numtype min(){return (x<y)?x:y;}private :n...转载 2018-03-14 16:10:39 · 88 阅读 · 0 评论 -
C++学习笔记(名词解释&&问答)
0.对象:描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。1. 封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。例如 C++中的 类,它定义了该集合中每个对象所共有的属性和方法。 (把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。)2. 继承 继承是让某个类型的对象获得另一个类型的对象的特征。例如:C++中子类对父 类的继承,子类具有父类...转载 2018-03-23 16:32:22 · 659 阅读 · 0 评论 -
C++学习笔记(调用构造函数和析构函数的顺序)
在一般情况下,调用析构函数的次序正好与调用析构函数的次序相反;最先被调用构造函数,其对应的析构函数最后被调用,而最后被调用的构造函数,其对应的析构函数最先被调用。(1)在全局范围中定义的对象,它的构造函数在文件中的所有函数(包含main函数)执行之前调用。如果一个程序中有多个文件,而不同的文件中都定义了全局对象,则这些对象的构造函数的执行顺序是不确定的。当main函数执行完毕或者调用exit函数时...转载 2018-03-19 08:46:03 · 147 阅读 · 0 评论 -
内存分区
转载 2018-03-19 08:44:29 · 85 阅读 · 0 评论 -
C++学习笔记(析构函数)
析构函数是与构造函数作用相反的函数(个人感觉这方面Java好点,Java的垃圾回收机制方便了很多)。当对象的生命周期结束时,会自动执行析构函数。①如果在一个函数中定义了一个对象(自动局部对象),当这个函数被调用结束时,对象应当释放,在对象释放前自动执行析构函数。②static局部对象在函数调用结束时对象并不释放,因此也不调用析构函数,只在main函数结束或者调用exit函数结束程序时,才调用sta...转载 2018-03-18 15:56:54 · 137 阅读 · 0 评论 -
C++学习笔记(构造函数)
构造函数:如果一个数据成员未被赋值,则其值不可预知。在系统为之分配内存时,保留了存储单元的原状,就成为了这些数据成员的初始值。注:类的数据成员是不能在声明类时初始化的。构造函数是一种特殊的成员函数,与其他函数不同,不需要用户调用,而是在建立对象时自动执行。构造函数与类名相同。不具有任何类型,不返回任何值。构造函数的功能由用户定义,用户根据初始化要求设计函数体和函数参数。两种方法定义构造方法:在类中...转载 2018-03-18 14:45:48 · 237 阅读 · 0 评论 -
C++学习笔记(面向对象)
protected(受保护的):用protected声明的成员称为受保护的成员,它不能被类外访问,但是可以被派生类的成员函数访问在类体中,既不写关键字private,又不写public,则默认为private声明类的方法是由声明结构体类型的方法发展来的在类体中直接定义函数时,不需要在函数名前边加上类名,因为函数属于哪一类不言而喻。但是在类外定义成员函数是,必须在函数名前边加上类名,予以限定(qua...转载 2018-03-18 11:00:11 · 158 阅读 · 0 评论 -
C++学习笔记(运算符重载)
运算符重载重载运算符的函数的一般格式如下:函数类型 operator 运算符名称(形参表列){对运算符的重载处理}例如,想将“+”用于Complex类(复数)的加法运算,函数的原型可以使这样的: Complex operator+ (Complex& c1,Complex& c2);注:①.不可重载运算符 . :成员访问运算符.* , ->* :成员指针访问运算符:...转载 2018-03-17 21:01:47 · 135 阅读 · 0 评论 -
C++学习笔记(散)
new和deleteC语言利用库函数malloc和free来分配和撤销内存空间C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数new和delete不是函数,而是运算符,因此执行效率更高C++仍然保留了malloc和free函数,但是不建议使用。共用体共用体类型的一般形式:union 共用体类型名 {成员表列};定义共用体变量的一般形式为:共用体类型名 共用...转载 2018-03-17 16:43:54 · 123 阅读 · 0 评论 -
C++学习笔记(继承类)
使用关键字class时默认的继承方式是private, 使用struct时默认的继承方式是public, 不过最好显式的写出继承方式不管是哪种继承方式, 在派生类内部都可以访问基类的公有成员和保护成员 , 基类的私有成员存在但是在子类中不可见( 不能访问基类的private成员 在派生类中是不能被访问的, 如果基类成员 不想在类外直接被访问, 但需要 在派生类中能访问, 就定义为protecte...转载 2018-03-22 11:03:43 · 126 阅读 · 0 评论