- 博客(31)
- 收藏
- 关注

原创 new与delete动态分配和释放内存
(1)new运算符使用的一般格式:new 类型 [初值];用new分配空间时不指定初值。如果由于内存不足等原因而无法正常分配空间,那么new会返回一个空指针NULL,用户可以更具该指针的值判断分配空间是否成功。例如:new int;//开辟一个存放整形的存储空间,返回一个指向该存储空间的地址(指针)。new int (100);//开辟一个存放整形的空间,并指定该整数的初值为100。new *c=new char [10];//开辟一个存放字符数组的空间,返回首地址。float *
2022-04-30 15:26:33
4427
原创 String
string>是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但<string>又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在<string>的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。
2023-04-07 21:23:11
193
原创 Web-day2
onblur 失去焦点事件;常用于输入框失去焦点后验证其输入内容是否合法;12.onchange内容发生改变事件常用于下拉列表和输入框内容发生改变操作;13.onsubmit表单提交事件表单提交前,验证表单是否合法;14.DOM模型----重点DOM全称 document object model 文档对象模型大白话,就是把文档中的标签,属性,文本,转换成对象来管理。那么,他们是如何把实现,标签,文本,属性转换成对象来管理呢?
2023-03-30 09:49:11
86
原创 web-day1
对象的定义:var 变量名=new object();//实例化一个对象变量名.属性名=值;//定义一个属性变量名.方法名=function(){}//定义一个函数;alert("姓名:"+this.name+","+"年龄:"+this.age);对象的定义:var 变量名={属性名:值;//定义一个属性函数名:function(){}//定义一个函数。
2023-03-18 13:19:54
79
原创 typedef语句
用typedef说明一种类型,作用是为一种数据类型(基本类型或自定义数据类型)定义一个新类型。//在定义数据时需要声明数据类型。
2022-08-06 15:22:54
86
原创 C++类模板
类模板中的成员函数开始创建不出来,因为obj无法确定数据类型,直到调用才能确定T的数据类型。总结类模板和函数模板的语法相似,在声明模板template后面加类,此类称为类模板。typename——表示其后面的符号是一种数据类型,可以用class代替。总结类模板中的成员函数并不是一开始就创建的,在调用时才去创建。T——通用的数据类型,名称可以替换,通常为大写字母。template——声明创建模板。...
2022-07-20 16:08:21
2071
原创 普通函数与函数模板的区别
建议使用显示指定类型的方式,调用函数模板,因为可以自己确定通用类型T。2.函数模板调用时,如果利用自动类型推导,发生隐式类型转换。1.普通函数调用时可以发生自动类型转换(隐式类型转换)。3.如果利用显示指定类型方式,可以发生隐式类型转换。...
2022-07-16 15:38:18
272
原创 new运算符
(1)new运算符使用的一般格式:new 类型 [初值];用new分配空间时不指定初值。如果由于内存不足等原因而无法正常分配空间,那么new会返回一个空指针NULL,用户可以更具该指针的值判断分配空间是否成功。例如:new int;//开辟一个存放整形的存储空间,返回一个指向该存储空间的地址(指针)。new int (100);//开辟一个存放整形的空间,并指定该整数的初值为100。new *c=new char [10];//开辟一个存放字符数组的空间,返回首地址。float *
2022-07-16 14:19:37
3143
原创 派生类的构造函数和析构函数
在继承与派生的关系中,派生类会继承基类全部函数,但是不包括构造和析构函数。解决这个问题的思路是在派生类的构造函数中调用基类构造函数,由基类的构造函数负责完全对基类成员变量的初始化工作。(1)构造函数调用顺序 1.先调用基类构造函数 2.再调用子对象构造函数 3.最后调用派生类构造函数(2)析构函数调用顺序: 1.先调用派生类构造函数 2.再调用子对象构造函数 3.最后调用基类构造函数#inc...
2022-05-14 15:19:28
470
原创 继承的访问
1.公有继承的访问#include<iostream>using namespace std;class Base1{ public: int m_a; protected: int m_b; private: int m_c;};class Son:public Base1{ public: void func() { m_a=10;//父类中的公共权限成员 到子类中依然是公共权限 m_b=10; //父类中的保护权限成员 到子类中依然
2022-05-13 18:24:22
561
原创 派生类成员的访问属性
一、公有继承共有继承访问属性 在基类的访问属性 继承方式 在派生类的访问属性 public public public protected protected private 不可直接访问 公有继承的应用:1.通过派生类的对象访问基类的成员变量。#include<iostream>using namespace std;class Clock{ public: void SetClock() { cin&g
2022-05-13 17:36:35
390
原创 数据的共享和保护编程题
1.在函数fn()中定义一个静态变量n,fn()中对n的值加1,在主函数中调用fn函数10次并显示n的值。#include<iostream>using namespace std;int fn(){ static int n=0; n+=1; return n;}int main(){ int x; for(int i=0;i<10;i++) { x=fn(); } cout<<"x="<<x<<endl; r
2022-05-13 15:26:42
300
原创 const对象指针
在建立对象时,编译系统会为每一个对象分配一定的存储空间,可以定义一个指针变量,用来存放对象空间的起始地址,这就是指向对象的指针,也称为对象指针。通常对象指针可以方便地访问对象的成员,它遵顼一般变量指针的各种规则,操作方法也相似。接下来将从数据保护的角度介绍对象指针。(一)定义一个指向对象的常指针:类名 * const 指针变量名 =对象地址;例:指向对象的常指针应用。#include<iostream>using namespace std;class Time{ .
2022-05-07 14:18:13
190
原创 常对象成员和常对象
静态成员的使用让类的对象之间能共享数据,友元的使用破坏了类的封装性,却给了类的“朋友”对本类成员访问的特权。但是,有时候要求数据在能共享的前提下还不能被修改,也就是要实现数据的保护。(一)常成员变量const更加严格,也更加安全!一般常量:1)int const x=2; 等价于const int x=2; int const a[3]={1,2,3];等价于 const int a[3]={1,2,3};2)float x=4.56;float是单精度浮点型数据,而4...
2022-05-07 13:42:05
339
原创 this指针概念
c++中成员变量和成员函数是分开存储的,每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。那么问题是:这一块代码是如何区分哪个对象调用自己呢?c++通过特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属对象。this指针是隐含每一个非静态成员函数内的一种指针,this指针不用定义,直接使用即可。this指针的用途:(1)当形参和成员变量名相同时,可用this指针来区分。(2)在类的非静态成员函数中返回对象本身,即使用*
2022-05-01 12:17:12
1380
原创 指针与动态内存分配
动态分配内存空间步骤:1)定义一指针变量。2)申请一片内存空间。3)用完后释放这片内存空间。#include<iostream>#include<stdlib.h>using namespace std;int main(){ int n; int sum=0; cout<<"请输入学生的人数:"<<endl; cin>>n; //1.定义一个指针变量 int *pstu=NULL; //2.分配内存空间
2022-04-29 15:53:52
671
原创 复制构造函数三次调用总结
/*分析下列程序的输出结果,并回答下列问题:① 该程序中共调用过几次拷贝构造函数?是在什么情况下调用的拷贝构造函数?// 1 用一个已知对象初始化一个正在被创建的对象 调用复制构造函数// 2 函数形式参数为对象时 ,实参对象向形参对象传值 调用复制构造函数// 3 函数的返回值时对象时 ,当需要获取返回值时 调用复制构造函数② 临时对象是在何时被创建的?又在何时被释放?// 临时对象时在 fun函数的return R;时被创建的,完成返回值的传递后,被系统释放③ 临时对象起什..
2022-04-29 15:03:35
363
原创 复制构造函数被调用的三种情况的总结
分析下列程序的输出结果,并回答下列问题:(1)该程序中调用了几次拷贝构造函数?是在什么情况下调用的拷贝构造函数?1.用一个已知的对象初始化一个正在被创建的对象,调用复制构造函数。2.函数形式参数为对象时,实参对象向形参对象传递,调用复制构造函数。3.函数的返回值为对象时,当需要获取返回值时,调用复制构造函数。(2)临时对象是在何时被创建的?又在何时被释放?临时对象时在 fun函数的return R;时被创建的,完成返回值的传递后,被系统释放(3)临时对象起什么作用?起到了值的
2022-04-29 14:57:35
2166
原创 构造和析构
对象的初始化和清理也是两个非常重要的安全问题。(1)一个对象或变量没有初始化状态,对其使用后果是未知的。(2)同样的使用完一个对象或变量,没有及时清理,也会照成一定的安全问题。1. c++利用构造函数和析构函数解决上述问题,这两个函数都会被编译器自动调用,完成对象初始化和清理工作。2. 对象的初始化和清理工作是编译器强制要我们去做的事情,因此如果我们不提供构造和析构函数,编译器会自动提供,编译器提供的构造和析构函数是空实现。构造函数:主要作用在创建对象时为对象的成员属性赋值,构造函数..
2022-04-29 14:05:47
745
原创 构造函数的重载
(一)重载函数条件(1)函数名相同(2)函数参数不同(一下两个满足其中一个即可)1)函数参数个数不同2)函数参数类型不同注意:函数返回值不同不能作为函数重载条件重载:根据函数参数个数和参数数据类型来自动调用哪一个重载函数(二)构造函数的重载1)默认/缺省构造函数(1)如果没有构造函数,系统会提供一个默认的构造函数帮助创建对象(2)默认构造函数没有参数2)复制/拷贝构造函数用对象初始化另一个对象,需要用到复制构造函数(1)作用:用一个已知的对象初始化另一
2022-04-29 13:34:17
6537
原创 静态成员———静态成员函数
接上篇(二)静态成员函数普通成员函数需要由对象来进行调用,但是静态成员函数与静态成员变量一样,也属于整个类,归所有对象共同拥有,它的好处在于不依赖任何对象就可以访问静态成员变量。特点:(1)所有对象共享一份函数(2)静态成员函数只能访问静态成员变量下面我们通过一个例子来说明:#include<iostream>using namespace std;class Person{ public: //静态成员函数 static void func()
2022-04-27 18:07:03
256
原创 静态成员-静态成员变量
静态成员静态成员都是用static修饰,它的特点是不论创建多少个对象,程序都只创建一个静态成员。最主要的特点:共享什么是共享呢?例如:统计超市中所有商品数量的总和,商品数量的总和是随着每一个数量的变化而变化的,这是我们就可以用静态成员处理。(代码下面有写)静态成员又分为静态成员变量和静态成员函数。(一)静态成员变量特点:1、所有对象共享一份数据。 2、在编译阶段分配内存。 3、类内声明,类外初始化。#include<io...
2022-04-26 22:48:33
3773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人