- 博客(14)
- 收藏
- 关注
原创 C++菱形继承
通过将 Derived1 和 Derived2 对 Base 的继承声明为虚继承( virtual public Base ), FinalDerived 类中只会有一份 Base 类的成员。无论通过 Derived1 还是 Derived2 的路径,访问 的都是同一个 Base 类的成员。
2025-03-07 16:36:12
114
原创 c++虚函数/多重继承
在父类“Vehicle”中的话成员函数run为虚拟成员,在子类"Bike"里继承于“Vehicle”,重写成员函数run,将函数作用改变。一个类为Derived继承于两个类“ClassA”和“ClassB”,这样就可以在这个类里面同时调用不同类里面的数据成员,会报错,是因为没法识别是调用哪个类的“testfun”,因此要注明是哪个类的testfun。3. 行为:当通过基类的调用一个虚函数时,调用的是对象实际类型的函数版本。如果没有匹配的虚函数,编译器会报错。override 关键字。virtual关键字。
2025-03-07 16:33:19
137
原创 c++继承
(原因是降级的原因,对于保护继承调用公有的数据会将公有的数据降级到保护级,保护级在上图可以观察。将一个类私有继承给“Vehicle”,将这个在主函数中调用公有的成员报错,是因为私有继承会将所有属性都变为私有,没法将main中调用。以上案例是对继承的解释,首先Vehicle类是一个父类/基类,然后bmm是派生类/子类继承于Vehicle用“:”来继承可以。首先在项目上添加一个“Animal”的父类,上面的是它的cpp文件,下面是它的.h文件。接下来的是权限对继承的影响,这两张很重要多看基本的特性就会了。
2025-03-06 22:29:28
163
原创 c++静态static关键字
以上案例做的内容为静态成员数据加和减,(假如将数据“staticvalunum”变为私有的时候只能在main中通过操作公有的成员函数“getstaticvalue”来操作私有数据。在c++中使用static成员的时候要在类外部使用,直接调用静态的函数即可。以上的案例为对成员函数使用static,方式和成员数据大差不差,都是在类外部调用且只能对static的静态成员进行使用。定义:静态成员函数是可以不依赖于类的实例而被调用的函数。它不能访问类的非静态成员变量和 非静态成员函数。,通常在类的实现文件中。
2025-03-04 23:30:38
157
原创 c++析构函数
析构函数的自动调用:当对象的生命周期结束时(例如,一个局部对象的作用域结束,或者使用 delete 删除 一个动态分配的对象),析构函数会被自动调用。另外一种调用是通过 delete关键字,通过指针来new一个行的空间,使用 delete 删除 一个动态分配的对象,析构函数就会自动调用。做一个析构函数,当输入a的数据后main的局域就结束了也就是在main里面{ }的内容完全执行完就会调用析构函数。析构函数是c++里面的一个特殊的成员函数,它在对象生命周期结束的时候被自动调用,用于销毁执行的对象。
2025-03-03 22:58:06
98
原创 C++delete关键字
在主函数中给类分配两个对象,其中一个位数组,使用完之后用delete将内存释放,每个 new 都对应一个 delete ,保证了动态分配的内存被适当管理。例如 :int *p = (int *)malloc(sizeof(int));而c++中不同的是通过动态分配内存,使用 new 可以在堆上动态分配一个对象。在C语言中给开辟空间的做法是通过malloc关键字C语言中,
2025-03-03 18:36:51
193
原创 C++this关键字
在类中的公有部分用this访问私有的成员地址赋值给Car,setyear是一个返回当前对象的引用,也就是将2023返回给私有的year,最后在main中做了一个链式调用。在c++里面this是一个指向调用对象的指针,它在成员函数的内部使用,以下为一个例子。这个例子中的编译可以看出this指向的地址是构造函数Car的的地址。
2025-03-01 22:29:06
192
原创 c++函数重载以及运算符重载
这样子的描述来对“==”做重载,将operate当做per1,ptemp当做per2,然后在下面对这个operate函数做了返回值。这事一共重载函数的例子,在这个例子中,使用print这个函数做了3种类型,在C语言中是无法做到用一个函数名字来做不同内容的。在同一个类里面可以声明几个功能类似且名字相同的函数,这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。这个例子有点抽象但不影响对重载运算符的初步理解,它重载的运算符是“==”,用了。这个例子是重载运算符“+”,将x以及y的值分别做相加。
2025-03-01 15:51:22
123
原创 c++的引用
在这定义一个交换函数的时候,打印结果不会达到我们想要的结果,是因为在函数之内做的交换只是在函数内交换,当函数运行完了a,b值在交换之后的值位置没有任何改变,因此要通过指针来操作地址,间接的改变a,b值。在C语言中定义一个有两种访问的方式,一种是直接的访问,另一种是间接的访问也就是指针,通过操作变量的地址。这个是一个返回为引用的简单例子,同样也很好直观地加深对引用的理解,先定义一个数组,在定义一个返回值是引用的函数。在这个简单的案例中,定义了i和b,通过z引用了i,a引用了b,指针p访问i的地址。
2025-03-01 07:30:00
150
原创 类的使用权限
如果直接调用银行信息回直接报错是因为private的信息是不可以直接在类外部被调用的,所以需要用public的操作方式来调用private的信息。的银行信息,意思就是直接将私有的信息提供给公有的信息,再然后让main函数直接操作公有的函数里面的信息就变成“张三”的信息赋给私有的变量。,而具体的存款人视为一个对象,一个对象不能私自修改账户额度,需要通过一个操作流程,比如去。的定义,对获取信息,存款,取款和获取余额做public的定义。银行的账户是一个模板,是一个类,有。,所以,存款人信息和账户额度设计成。
2025-02-27 17:45:12
210
原创 从结构体到类的转变
例如,在类的外部定义成员函数时, :: 用于 指明该函数属于哪个类。例如, public 成员可以在类的外部访问,而 private 成员只能在类内部访问。的关系,在类里面的成员数据是类的内部数据一般可以通过通过成员函数直接进行访问,*carthings不是成员函数它是指针不能。在 C++中,一个类包含另一个类的对象称为组合,现在定义了一个类为轮胎,要将这个轮胎类被包含在car这个里面。在car里面做了两种类型的存在方式,wl和*wle都是选择的命名形式,一种是直接使用另一种为指针形式。
2025-02-26 19:35:52
686
原创 Lambda 练习
使用Lambda函数但没有回调函数所以要用auto,当减法想用于捕获数值的时候,由于捕获只能用于读,所以捕获要放在输入完x和y的值后面捕获否则减法的值永远都是0.这个Lambda函数用了回调函数,回调的函数返回计算的结果,就是当x,y赋值后到选择打印calculator里面的x,y做计算。做一个用c语言写的数值计算,通过Switch来选择运算符调用函数。没有用到Lambda函数。
2025-02-25 21:49:57
136
原创 c++ Lambda 表达式
使用C语言来编写获取a和吧之间的最大数没有使用c++中Lambda表达式的形式,对p做了返回x大于y值,回调于compare中bool(*p)为p的指针。当使用Lambda表达式的时候使用[]()->return type格式来代替add函数,但是没有回调函数的时候要加上auto。运用了Lambda表达式直接将对p的函数运用在了main中,然后有回调到compare函数中进行使用。Lambda在c++中是一种匿名函数,意思就是在使用一种小型函数的时候可以直接调用这个函数。方法二【=】可以捕获所有的对象。
2025-02-23 11:02:46
92
原创 自学51单片机(1)
1,下载ch340驱动,将单片机和电脑进行连接后,即可在计算机管理看到连接的串口类型。之后进入选择类型的界面,选择你想使用的芯片类型,我学习的类型为AT89c52。4.在左侧Target中选择新增已存在的文件中加入之前创建的.c文件。通过stc选择对应的单片机型号,串口,接着打开moban.hex。5、创建好文件后,写入代码进行编译,即可看到.hex类型的文件。1、在文件夹中创建一个文件夹名字为Template。2.在template文件夹里创建一个.c文件。在keil创建一个代码工程。
2024-11-07 12:56:15
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人