这里写目录标题
- P85 02 程序的内存模型-内存四区-全局区
- P86 03 程序的内存模型-内存四区-栈区
- P87 04 程序的内存模型-内存四区-堆区
- 重要
- P89 06 C++中的引用-引用的基本语法
- 别名可以跟原名一样。
- P92 09 C++中的引用-引用做函数返回值
- P93 10 C++中的引用-引用的本质
- 占位参数
- P98 15 函数高级-函数重载-注意事项
- P105 22 类和对象-封装-设计案例2-点和圆关系
- 将文件分成头文件和源代码
- .h
- .cpp
- P110 27 类和对象-对象特性-深拷贝与浅拷贝
- P114 32 类和对象-对象特性-成员变量和成员函数分开存储
- P115 33 类和对象-对象特性-this指针的用途
- P117 35 类和对象-对象特性-const修饰成员函数
- P119 37 类和对象-友元-友元类
- P119 37 类和对象-友元-友元类
- P121 39 类和对象-C++运算符重载-加号运算符重载
- P122 40 类和对象-C++运算符重载-左移运算符重载
- 如何查看cout源代码
- P123 41 类和对象-C++运算符重载-递增运算符重载
P85 02 程序的内存模型-内存四区-全局区
P86 03 程序的内存模型-内存四区-栈区
因为return返回的是整形指针,所以用int*定义
第一次是因为编译器帮我们做一个保留。
P87 04 程序的内存模型-内存四区-堆区
重要
指针本质也是局部变量,放在栈上,指针保存的数据放在堆区。
只要程序员不把堆区释放,堆区就一直存活。
c-malloc c+±new
c++数组声明但不初始化,系统如何赋值
得看数组声明位置
1.全局/静态数组
数组内容自动初始化为0
2.局部数组
void test()
{
int a[10]; //此时是数组的值是随机的
memset(a,0,sizeof(a)); //将a数组的值都初始化为0
}
3.类的成员数组
内容是随机的,也需要memset
P89 06 C++中的引用-引用的基本语法
别名可以跟原名一样。
P92 09 C++中的引用-引用做函数返回值
//返回局部变量引用
int& test01() {
int a = 10; //局部变量
return a;
}
//返回静态变量引用
int& test02() {
static int a = 20;
return a;
}
int main() {
//不能返回局部变量的引用
int& ref = test01();
cout << "ref = " << ref << endl;
cout << "ref = " << ref << endl;
//第一次可以显示,第二次a的内存已经释放。
//如果函数做左值,那么必须返回引用
int& ref2 = test02();
cout << "ref2 = " << ref2 << endl;
cout << "ref2 = " << ref2 << endl;
test02() = 1000;
cout << "ref2 = " << ref2 << endl;
cout << "ref2 = " << ref2 << endl;
system("pause");
return 0;
}
P93 10 C++中的引用-引用的本质
占位参数
P98 15 函数高级-函数重载-注意事项
为什么const int const int & a 可以直接赋值为10
正常来说,引用都是赋值为变量。
const int & a = 10;
编译器给我们代码做了优化
P105 22 类和对象-封装-设计案例2-点和圆关系
#pragma once
是一个比较常用的C/C++预处理指令,只要在头文件的最开始加入这条预处理指令,就能够保证头文件只被编译一次。
我们在一个Cpp文件写多个类,是不合规范的。
我们需要将不同的类,写到不同的头文件上。
将文件分成头文件和源代码
详细
.h
需要头文件和类
函数的声明
.cpp
需要函数的实现
P110 27 类和对象-对象特性-深拷贝与浅拷贝
P114 32 类和对象-对象特性-成员变量和成员函数分开存储
空对象占用一个字节空间
没有成员变量的情况
有成员变量的情况
然后创建对象就是4个字节了。
P115 33 类和对象-对象特性-this指针的用途
不返回引用就会通过拷贝构造创建新对象,就不是原来的对象了
返回值类型去掉&,改成*
return this,去掉 *
this本身是指针。
P117 35 类和对象-对象特性-const修饰成员函数
P119 37 类和对象-友元-友元类
P119 37 类和对象-友元-友元类
类外写成员函数
P121 39 类和对象-C++运算符重载-加号运算符重载
P122 40 类和对象-C++运算符重载-左移运算符重载
如何查看cout源代码
P123 41 类和对象-C++运算符重载-递增运算符重载
没看懂。