C++笔记
网上学习,还是搞个博客吧
小白_马
这个作者很懒,什么都没留下…
展开
-
string类的实现
string类的实现,包含构造函数,赋值运算符,拷贝构造函数,析构函数string.cpp#include<iostream>using namespace std;class string {private: int length; char* my_str;public: string(const char *str) { if (*str == '\0') { length = 0; my_str = new char[1]; } else {原创 2020-05-20 09:56:10 · 198 阅读 · 0 评论 -
C++中类的拷贝构造函数,和赋值运算符函数参数和返回值引用问题
C++中类的拷贝构造函数,和赋值运算符函数参数和返回值引用问题拷贝构造函数的参数使用引用原因赋值运算符函数的参数和返回值都是引用的原因拷贝构造函数的参数使用引用原因 因为外部的参数传入拷贝构造函数的形参时,需要使用赋值操作。默认的赋值操作是浅拷贝, 当类中 含有指针成员变量时,函数调用完后会自动释放形参占用的空间,会将原来的指针指 向地址释放,造成数据释放错乱。赋值运算符函数的参数和返回值都是引用的原因 返回值当调用赋值运算符函数时,会执行浅拷贝。同拷贝构造函数,当类中有指原创 2020-05-20 09:27:04 · 422 阅读 · 0 评论 -
C++ 中两个坐标点比较大小
方法一(使用C++自带的结构体pair)C++的标准模板std中已经包含结构体pair,使用方法:#include<iostream>#include<algorithm>using namespace std;bool cmp(pari<int,int> a,pari<int,int> b){ return a.fir...原创 2020-04-06 09:26:46 · 1648 阅读 · 0 评论 -
程序内存栈为什么是从高地址往低地址分配内存的(小白_马)
最近在看书的时候发现程序内存栈是从高地址往低地址分配内存的,而其它的内存地址是从低到高分配内存。首先,因为栈设计为后进先出的特性(栈需要存储函数中的局部变量和参数,函数又是最后调用的最先销毁,栈的后进先出正好满足这一点)。其次,栈是连续分配内存的,如果给一个数组或对象分配内存,栈会选择还没分配的最小的内存地址给数组,在这个内存块中,数组中的元素从低地址到高...原创 2020-03-01 01:44:16 · 12895 阅读 · 1 评论