行知C++
掌握C++,代码实践。
行知SLAM
首发知乎:https://www.zhihu.com/people/yue-guang-qin-liao-cheng
展开
-
7.虚函数
2018.6.5 11:131.指向对象的指针father *pfather=new son;//new son 构造了一个子类对象,在构造子类对象之前先构造父类对象,所以会先调用父类构造函数,然后调用子类构造函数pfather指针指向的是父类对象。son *p=new son.//指向子类对象的指针delete p;完整代码#include <iostream> using namespace std; class father{ public: father原创 2020-05-13 17:16:25 · 268 阅读 · 0 评论 -
6.c++之运算符重载
星期四, 17. 五月 2018 03:35下午####运算符重载重载前置自身构造函数void operator++(){++n;}++i;创建临时对象class num{num operatorr++(){ ++n; num t; t.set(n); return t;}}int main(){ num i; num x=++i;}**创建无名临时对象:**返回带有参数的构造函数。这种方法不可取取消创建临时对象:利用this指针const num &am原创 2020-05-13 17:15:23 · 161 阅读 · 0 评论 -
5.c++学习记录之深入函数(5.11)
###深入函数#####星期五, 11. 五月 2018 10:44上午成员变量的初始化与赋值1成员变量的赋值retangle(int l,int w){length=l,width=w;}//成员变量的赋值retangle a(3,4);//对象a在创建的时候调用了构造函数,构造函数通过接收参数l,w将3,4传递到函数体中,然后分别赋给了私有成员变量length和width,完成了对成员变量的赋值工作.>2.成员变量的初始化ractangle():length(3),width(4){原创 2020-05-13 17:15:00 · 169 阅读 · 0 评论 -
5.c++学习记录之复制构造函数
浅层复制构造函数:容易导致迷途指针问题A(const A&a)深层复制构造函数A(const A &&A){x=new int;x=(a.x);}//作用是将旧对象的成员指针X指向的空间处的数据赋给新对象的成员指针x指向的空间。复制的是指针指向空间处的数据而不是指针保存的地址,这样由于两个对象的成员指针分别保存两块内存区域的地址,指向不同的内存空间。运算符重载在成员函数实现自加...原创 2020-05-13 17:14:19 · 213 阅读 · 0 评论 -
4.c++学习记录之引用及函数传递
*星期二, 08. 五月 2018 09:10上午*引用引用就是别名.int &rnum=num;.//rnum就是num的别名,对rnum的操作就是对numde 操作引用就是别名常量,别名是外号,属于谁就是谁的,不可更改;别名的值是数据,数据是可以修改的.引用对象Human Mike;Human &rMike=Mike;//定义对象Mike的别名rMike但我们不能定义一个类的别名,因为类Human是一个类型,他没有具体的内存地址.Human &am原创 2020-05-13 17:13:51 · 143 阅读 · 0 评论 -
4.1c++学习记录之传递对象
c++学习记录之引用2018年5月9日14:39###传递对象**按值来传递对象:**默认调用复制构造函数class A{ ... A(); A(A&); ~A();}A func(A one);int main(){ A a; func(a); return 0;}A func(A one){ return one;}**按地址传递:**没有调用复制构造函数,也就没有输出复制构造函数的信息.int main() {原创 2020-05-13 17:13:14 · 250 阅读 · 0 评论 -
3.c++学习记录指针总结(2018年5月7日)
指针学习总结内联函数const 成员函数构造函数:可以创建多个构造函数.析构函数:没有返回值 不能有参数 只能有一个堆栈进栈顺序:被调用函数下一行的内存地址,其次是函数的参数,多个参数按照从右往左的顺序,最后是函数的局部变量.用指针创建堆中空间用关键字new创建一个堆并分配内存int *p;p=new int;//分配4个字节的空间int *p=new int*p=4//将4赋给存储区用指针删除堆中空间int *p=new int;delete p;//这原创 2020-05-13 17:12:28 · 171 阅读 · 0 评论 -
3.1c++学习记录之const总结
const总结常量:const double PI=3.14;const 成员函数:void print()const{return x};常量指针:int a=2;int *const p=&a;//它 的值不可以改变,但是指向的值是可以改变的,常量指针必须初始化A *const p=new A;指向常量的指针该指针指向的整型变量是不可以修改的,但是该指针可以被修改const int *p;const A* P=new A;P=P+1;指向常量的常指针原创 2020-05-13 17:10:02 · 155 阅读 · 0 评论 -
1.C++双冒号总结
::总结1.作用域符号::前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分如:A,B表示两个类,在A,B中都有成员member。那么A::member就表示类A中的成员memberB::member就表示类B中的成员member2.是C++里的“作用域分解运算符比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数原创 2020-05-13 17:07:45 · 248 阅读 · 0 评论 -
1 《c++学习记录》之命名空间/构造函数概念总结
###1.30 周二1.using std::cout;iostream.h是c语言的,可以不用std,使用new创建一个堆分配内存,在new后面跟一个要分配的对象类型,编译器根据这个类型来分配内存。int *pp=new int3.Human *p=new human 104mianp-> 访问成员函数###1.31周三1.构造函数的函数头进行初始化ractangle():length(3),width(4){函数要执行的功能}2.对每个成员变量的初始化工作原创 2020-05-13 17:06:46 · 252 阅读 · 0 评论