函数重载:名字一样,参数不一样
同一个小区,不同的家庭在小区中住不同的房子
缺省参数:写函数的时候故意不把参数写完,但是只能不写左边的,右边的必须写
如果在使用有缺省参数的函数时,给了实参值,那么就优先调用实参值
如果没有给实参,就可以用默认参数了。
函数定义写main下面,函数声明(缺省的)写main上面。有点脱了裤子放屁的感觉
一个强迫症患者,从最右面开始写参数,写道左边的时候空几个不写。
内联函数:就是在函数名字前加个inline,inline就是个飞雷神,可以节省函数跳转开销。一般写在.h文件中。
飞雷神的意思就是,将函数的代码直接插入到调用它的地方,减少了函数调用的开销。这对于频繁调用的小函数尤其有益,可以显著提高程序的执行效率。
哑元函数:函数参数列表中只有数据类型,没有参数名字,用来占位置。目前感觉没啥用,没用过这种函数。
引用:起个小名,通过喊小名,就能使唤他,不用喊大名了。
引用的时候必须初始化:起小名的时候一定要明确是给谁起小名,不能随便起小名
引用和引用的目标数据类型必须要一致:明明是想给人起名,结果你拿起来就把这个小名给狗了,这是不合理的
常引用:给他颁布一个伟大称号,一提到这个伟大称号,人们就能想到他。他可以改变,但是称号不能改变
动态分配的内存位于 堆 上
动态分配内存:new和delete(这俩是操作符)
分配单个内存:
int *p = new int;//动态分配一个 int 类型的对象
*p = 10;//使用该对象
delete p;//释放该对象占用的内存
p = NULL;//防止野指针
动态分配数组:
int* arr = new int[5]; // 动态分配一个包含 5 个 int 类型元素的数组
for (int i = 0; i < 5; ++i) {
arr[i] = i; // 使用数组元素
}
delete[] arr; // 释放数组占用的内存动态分配对象:
class MyClass {
public:
MyClass() { std::cout << "Constructor called" << std::endl; }
~MyClass() { std::cout << "Destructor called" << std::endl; }
};
MyClass* obj = new MyClass(); // 动态分配一个 MyClass 类型的对象
delete obj; // 释放该对象占用的内存
标签:函数,大白话,int,笔记,动态分配,对象,C++,new,MyClass From: https://blog.csdn.net/qq_59958425/article/details/141869345类的定义格式:class homename{public: private: protected: };
类的实例化对象://栈区对象:类名 对象名;
//堆区对象:类名 *对象名 = new 类名;
单身狗可以用C++新建一个对象,但是记得将你的对象实例化后再使用。
先实例化 homename m1,再使用
四个可以:
类内可以访问公有权限的成员:
类内可以访问私有权限的成员:
类内可以访问受保护的成员:
类外可以访问公有权限的成员:m1.pub_func();
两个不可以:
类外不可以访问私有权限成员
类外不可以访问受保护权限成员