c++
文章平均质量分 71
WDhani82475
当你唯一的工具是锤子时,什么在你眼里都是钉子。
展开
-
动态开辟 new_delete & malloc_free
内存分配的三种方式: 1、在栈上创建。在执行函数时,函数内局部变量的存储单元在栈上创建,函数执行结束时这些存储单元会自动释放。特点:效率高、分配的容量有限 2、从堆上分配,也称为动态内存分配。程序在运行的时候用malloc或者new申请内存,并且自己利用free或delete释放内存。 3、从静态存储去分配。在编译时就分配好了内存,这块内存在程序的整个运行期间都存在。例如全局...原创 2018-03-06 23:01:11 · 270 阅读 · 0 评论 -
继承与多继承
继承父类派生子类,这种关系称为继承特性: 1、子类全盘接受父类的特性,出构造函数和析构函数外 2、对父类的成员方法、属性,进行修改,隐藏父类的成员方法#include<iostream>using namespace std;class Base{public: Base() { cout<<"Create Base"&...原创 2018-03-21 23:39:10 · 409 阅读 · 0 评论 -
类成员的访问权限
声明:分为下面两种情况: 1、在类的内部进行访问 2、在类对象的内部访问,即主函数中用对象调用函数和数据成员,且对象永远不能访问类的私有成员和保护函数。继承: 派生类对基类的全部成员函数和数据成员进行全部接受,除过构造函数和析构函数,在派生类中,把基类的函数和数据成员复制了一份。public继承 在基类当中,只能通过公有方法对私有数据进行操作。派生类公...原创 2018-03-25 23:51:39 · 937 阅读 · 0 评论 -
运算符重载函数& 友缘函数 &成员函数
成员函数一个常规的成员函数在逻辑上这三者时互不干扰的 1、该成员函数可以访问类的私有成员 2、该成员函数属于类的作用域 3、该函数需要通过一个类的对象去调用(this指针)#include<iostream>using namespace std;class Test{public: Test(int d):data(d)...原创 2018-03-05 22:35:59 · 750 阅读 · 0 评论 -
指针(02)
声明:1、数组里面只有一个地址和长度2、数组名不是数组首元素的地址,而数组名里面保存的地址是首元素的地址关系: *的优先级低于[] *的优先级低于()数组操作: 1.数组的首地址 2.数组的大小区分:#include<iostream>using namespace std;void main(){ int ar[10]={1,...原创 2018-03-17 17:27:39 · 189 阅读 · 0 评论 -
this指针 & const & static
this this指针表示类中的当前对象,在调用函数时,首先会将对象的地址传给this指针。对象主要是通过私有数据成员进行区分来判定。公有函数为所有对象所使用,且不占内存空间。##include<iostream>using namespace std;class Test{public: Test(int d=0):data(d) ...原创 2018-03-03 16:32:58 · 214 阅读 · 0 评论 -
类的六大默认构造函数
缺省的构造函数和析构函数,等于放弃了自己初始化和清除的机会;缺省的拷贝构造和缺省的赋值函数,采用“位拷贝和值拷贝”。若类中出现指针时,这两个函数出错。class String{public:String(const char *str = NULL);//构造~String();//析构String (const String &s);//拷贝构造String&...原创 2018-03-03 00:11:22 · 3455 阅读 · 0 评论 -
参数缺省值
缺省参数声明:发生在成员函数的重载中 有一些参数的值在每次调用函数时都相同,c++利用缺省值使书写变得简单(在编译时,缺省值有编译器自动插入)规则:1、函数的缺省值只能出现在函数的声明过程中,而不出现在定义体中** void fun(int x=0,int y=0);//正确,函数的缺省值出现在定义中 void fun(int x=0,int y=0) //...原创 2018-03-16 12:29:25 · 2303 阅读 · 0 评论 -
成员函数的重载、覆盖(重写)、覆盖
重载特点: 1、函数名与类名相同 2、无返回值 3、参数列表不同(参数的顺序、个数、类型)返回值可以作为判断重载函数的依据吗? 不行,因为c++/c程序中可以忽略函数的返回值,因此返回值不能作为重载的判断依据//Test构成重载class Test{ Test(); Test(char b,int a); Test(int...原创 2018-03-16 11:20:48 · 854 阅读 · 1 评论 -
if与assert区别
声明:程序一般情况下分为Debug和Release,Debug用于内部测试,Release用于用户使用。assert头文件:#include<assert.h> 断言仅在Debug版本起作用和宏一样,它用于检查不应该发生的情况。如果断言失败,则程序会终止。char *my_strcpy(char *des,const char *src){ ...原创 2018-03-15 21:17:13 · 539 阅读 · 0 评论 -
New操作符的三个功能
new operator 与operator new关系new一个对象时,说的是(new操作符)new operator,是语言内置的,和sizeof()操作符一样。它有两个作用,一开辟空间,二是调用构造函数。delete 一个对象时,说是 delete operator,它有两个作用,一调用析构函数,二是释放空间。 二者相反作用。 调用new operator 时 ...原创 2018-03-08 23:25:16 · 1519 阅读 · 0 评论 -
多态和虚函数
多态 实现程序的统一性,多态分为编译时多态(重载),运行时多态(覆盖)。实现手段:(父类的指针、引用和virtual) 1、父类的指针,指向子类 2、父类的对象,等于子类的对象 3、父类的引用,等于子类的对象#include<iostream>using namespace std;class Base{public: voi...原创 2018-04-02 17:42:50 · 250 阅读 · 0 评论