学习心得
Zom_b
这个作者很懒,什么都没留下…
展开
-
关于c++继承的一些问题
继承 继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。 被继承的类称为基类或者是父类;继承的类被称为子类或者是派生类。继承方式 继承方式分为三类:公有继承、保护继承、私有继承。三类继承的不同之处,是改变继承成员数据的访问权限公有继承:原来的成员数据访问权限不变保护继承:原来成员数据访问权限private不变;public、protected都变为protected。私有继承:原来成员数据访原创 2020-12-08 23:16:07 · 257 阅读 · 0 评论 -
c++重载常见问题
重载 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载 。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 其次,不会根据返回值不同进行重载函数重载//返回值相同或类似,名字相同;参数列表不同,定义不同void print(int i) { cout << "整数为: " << i << endl;}void print(double f)原创 2020-12-08 00:11:17 · 802 阅读 · 0 评论 -
友元函数的易错点
友元函数 类的友元函数定义在类的外部,虽然它并非成员函数,但通过friend的声明能够使它访问类的私有成员class Integer{public: friend void test(Integer& i);//友元函数声明,位置可以随意,必须在类内private: int val;};void test(Integer &i){ cout<<i.val<<endl;//可以直接访问Integer的私有成员} 如果一个原创 2020-12-07 21:58:13 · 333 阅读 · 1 评论 -
全面了解static
static static是c/c++中的一个关键字,可以是一个变量、函数的修饰符,被其修饰的变量或者函数将变成静态变量或静态函数。 static 关键字能够在不破坏了此变量的访问范围下,将此范围内变量的值保存至下一次调用。在 C++ 中,需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见时,可将其定义为静态数据。局部变量 当static修饰一个局部变量的时候,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全原创 2020-12-07 21:15:37 · 77 阅读 · 0 评论 -
深入new和delete
new和delete1.前言 new和delete是c++在c语言特性上的拓展,功能上与c语言的malloc和free类似,但具体功能上略微有些不同。1.malloc和freemalloc: c语言中的malloc()是个函数,函数原型是:void* malloc(unsigned int size) 。 它能够动态的从堆里申请内存,具体实现是交给操作系统来实现的。函数返回的指针是指向堆里面的一块内存。操作系统中有一个记录空闲内存地址的链表。当操作系统收到程序的申请时,就会遍历该链表,然后原创 2020-12-07 20:36:01 · 148 阅读 · 0 评论 -
c++命名空间的使用
命名空间 c++中,名称可以是符号常量、变量、宏、函数等。为了避免在大规模程序的设计中,以及在程序员使用各种各样的c++库时,这些标识符的命名发生冲突。标准c++引入了关键字namespace(命名空间),能够更好地控制标识符的作用域。 此外,std是c++标准命名空间,c++标准程序库中的所有标识符都被定义在std中,比如标准库中的类iostream、vector等都定义在该命名空间中,使用时要加上声明using namespace std,或者using指示(std::string、std::v原创 2020-12-07 12:15:58 · 291 阅读 · 1 评论 -
非递归遍历二叉树实现和理解
非递归遍历二叉树1.前言 总所周知,二叉树的遍历分为先序遍历、中序遍历和后序遍历。遍历的顺序不同,则结果不同。而遍历方法也分递归和非递归。而二者的复杂度相同:时间复杂度为O(nlgn),空间复杂度为O(n) 。 虽然递归的二叉树逻辑简单,但是通过递归调用可能会浪费多余的栈空间资源,因此非递归遍历也是十分有用的,相比起递归遍历,其会占用更少的栈资源。2.非递归遍历的实现 非递归遍历二叉树是通过循环来实现的,在逻辑上相比起递归要稍微复杂一些,需要借用到stack(栈)数据结构。因为遍历时必须根节原创 2020-12-05 23:17:29 · 581 阅读 · 0 评论 -
c/c++中const的区别
1.前言 const是construct的缩写,是c/c++语言中的类型限定符,采用const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。 但c和c++中的const本质上却有区别。原创 2020-12-04 21:43:41 · 759 阅读 · 0 评论