自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C++多态的基本概念

在继承的条件下,父类的指针可以指向任何继承于该类的子类对象,子类具有的形态,父类也具有。重写:在虚函数的条件下,子类定义了和父类的虚函数一模一样(返回类型,函数名,参数列表)的函数(子类的这个函数也是虚函数)。多态的定义:相同的行为方式导致了不同的行为结果,同一行语句展现了多种不同的表现形态,即多态性。1.在继承的条件下,使用父类的指针(引用)指向子类的对象(哪个子类都可以)。运行时多态(动态多态):利用虚函数实现的多态函数调用的决议时期,动态绑定。2.父类中存在虚函数,且子类重写了父类的这个虚函数。

2024-01-22 15:12:56 544

原创 C++继承的构造析构的顺序和继承方式以及优点

在子类的初始化参数列表中,会自动调用父类的无参构造函数,从子类的初始化参数列表中跳转到父类的构造函数。

2024-01-20 15:42:36 515

原创 C++继承的基本使用

当同时在子类和父类定义一个同名的变量,并在子类中定义一个函数,将这个变量赋予值,优先使用的是子类成员,如果想使用父类的同名成员,需要写出父类的类名作用域,函数也是一样。计算子类的大小要包含父类的成员属性,定义对象成员顺序排布:父类成员在前,子类在后,在每一个类中取决于定义的顺序。作为派生类:包含了父类的成员,能够直接使用父类的成员,子类看作是对父类的扩展和延续。子类的写法:class 类名:public 父类的类名。子类无论是在类内还是类外都可以使用父类的成员。

2024-01-20 14:16:49 423

原创 C++类成员中的常量

在带有参数的构造函数当中:初始化成员的顺序,取决于成员在类中声明的顺序,在上述类中,m_a在m_b前定义,如果m_a先输出m_b后输出的,则输出的m_a是乱码,因为m_a没有给初始化的值。因为常函数中的this指针:const CTest* const this,有两层const修饰,其中第一个const约束了this指针指向的对象不能修改。对于常量来说,必须在初始化参数列表中指定初始化值,变量也同样可以在这里指定初始化值。常成员函数:在函数中不能修改类中的非静态成员属性,即使是变量。

2024-01-19 14:15:59 716 1

原创 C++静态成员

1.静态函数没有隐藏的this指针参数。2.无法直接使用类中的一般成员,只能使用静态的静态成员,一般成员既可以使用一般成员又可以使用静态成员。3.可以通过对象调用也可以通过类名作用域。

2024-01-18 16:20:20 314 1

原创 C++一般类成员

一般成员属性:属于对象的,包含在对象之中,只有在定义对象时,才会存在,多个对象会存在多份成员属性,彼此独立互不干扰。sizeof(CTest) 并不是说这个CTest类多大,,而是用CTest定义的变量(对象)的大小。当定义一个类后,类中什么都不写时,是1个字节,用来占位,标识区分各个对象,表示对象真实存在于内存中。一般的成员函数:属于类,编译期就存在,存在与否和是否定义对象无关,函数只会存在一份,被多个函数共享。而空指针对象,并不存在真是的对象,也能调用函数,但是有风险。

2024-01-18 15:24:19 556 1

原创 C++封装链表

头删除链表:判断头节点是否为空,不为空,将头节点放在一个临时的节点中,再判断链表长度是否为1,如果为1,说明只有一个节点,将头节点和尾节点都赋为空。如果长度不为1,则将头节点的下一个节点变成头节点,删除掉标记的头节点并赋为空,长度减一。尾添加链表:先new一个节点的值,判断是否为空链表,不为空则将这个值赋给尾节点的下一个,然后把他作为新的尾节点。遍历链表:先将头节点放在一个临时的节点中,再判断是否为空,如果不为空则输出该节点的值,输出后指向下一个节点。想要构建一个链表,首先要有节点的结构和链表自身的结构。

2024-01-16 15:53:37 501 1

原创 C++ 类基础

如果是编译器提供的默认的,则是无参的,如果是自己手动重构,参数自定,无返回类型(并不是void) 当定义对象时会自动调用构造函数 一个类中构造函数可以有多个,是函数重载的关系,会根据实参自动匹配。注意:在类中定义的类成员属性和类成员方法默认是私有的,想要调用就需要将他们变为共同的,需要在前面加上访问修饰符(public,protected,private),都是关键字。调用类成员属性和类成员方法的写法:类对象.类成员属性或者类成员方法。对象:类的实例,具体的概念,是存在于内存中的。

2024-01-15 16:47:37 418

原创 C++引用 &

在我们学完引用后我们一共就有三种传参方法,值传递,引用传递,地址传递;如果只是查看实参,三种方式都可以,推荐引用和地址传递,值传递是对实参的拷贝,额外申请的空间的大小事不可控的,地址传递额外申请空间大小是固定的,引用传递不额外申请空间。尤其是对复合类型(结构体,类)来说,尽量避免值传递 如果想要修改实参,只能用引用传递和地址传递。引用只有一级,指针可以多级.要注意引用一旦定义就必须初始化值,引用一旦和某个空间绑定后就不能再引用其他空间了,指向可以改。

2024-01-15 15:07:09 343

原创 C++空指针nullptr

接下来在主函数中调用,将NULL当做参数传入函数时,调用的是第一个fun函数,并不是我们想象中的空指针,并没有调用第二个fun函数,也就意味着NULL并不是指针,当我们去看NULL的时候,他是一个宏#define NULL 0,这就会导致会出现混用的问题。NULL,本质就是一个宏#define NULL 0,意义不明确,整形数字0和控制真含义混用 nullptr解决了含义混用的问题。对比一下nullptr和NULL:写两个函数关系为重载函数,一个为整形一个为指针类型。

2024-01-15 14:36:14 408

原创 c++函数重载

函数重载:在同一个作用域下,函数名相同,参数列表不同(参数类型,数量等),返回类型无要求,重载是描述多个函数之间的关系。

2024-01-15 11:49:12 424

原创 c++函数参数默认值

对于一个给了一个初始化值的函数,在调用时如果不传入新的参数,将会使用默认的初始化值,如果传入了新的参数,那么将会使用传入的参数。//a输出为10fun();//a输出为1return 0;函数多个参数指定的默认规则;从右向左一次制定,中间不能间断。如果调用时不传入参数,将会使用所有默认值,如果只传入一个参数将会把左边的替换掉,以此类推。//输出结果为2,10,100fun2();

2024-01-15 09:33:47 498

原创 c++增强的范围for

格式 for(定义一个新的变量(这个变量的类型取决于你要遍历的东西):遍历的(数组或者字符串等)名字)例for(int v:arr){}增强的范围for还可以遍历支持begin,end的各种容器,但是不能遍历用指针指向的数组,例如:new出来的变量。与正常的for循环对比,增强的范围for更加简单,代码量更少。二者对同一个数组遍历的结果是一样的。

2024-01-15 09:08:59 361

原创 c++ string

使用string时可以通过=来判断字符串是否相等,+, +=可以用于字符串的拼接,substr为截取字符串substr(初始下标,截取长度)输出为截取下来的字符串,截取长度如果过多则截取有效的长度,如果下标超出,会出现异常,获取字符串的长度可以用size()或者length(),如果想用c中的strcmp可以将string类型的字符串转化为const char*类型利用的是.c_str(),下面是一些例子。在c当中我们定义一个字符串用的是变量类型加变量名。比较两个字符串是否相同用的是 strcmp。

2024-01-14 21:24:17 348 1

原创 c++ bool

然而我们在c++中就比较简单,只需要使用bool这个c++的关键字就可以定义这个真假。在c中我们使用bool需要用到typedef。

2024-01-14 21:09:57 392

原创 C++动态申请空间

【代码】C++动态申请空间。

2024-01-14 21:03:40 468

原创 C++作用域

我们在写一些代码的时候写在main函数中的我们称之为局部变量,写在main函数外的我们称之为全局变量,而当代码中既有全局变量又有局部变量时,一般采取的是就近原则,用的是main里面的变量,而想要使用全局变量的话需要使用作用域运算符::,将作用域运算符::写在变量的前面。当一个变量只出现在定义的作用域里面的时候,我们不需要使用作用域运算符,直接输出就可以。如果在全局范围内,划分出的一个小的作用域。当使用A这个作用域时,我们就要打开这个A作用域。在头文件的下方写上它。输出时就要在作用域运算符::前面写上A。

2024-01-14 16:10:19 356 1

原创 C++的输入输出

多个连续输入cin>>变量的名字>>变量的名字>>变量的名字;输出格式cout<<变量的名字<<endl;输出多个时cout<<a<<b<<endl;输入格式cin>>你要输入的变量的名字;

2024-01-14 15:44:24 354 3

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除