- 博客(78)
- 收藏
- 关注
原创 1.3 c++虚基类的用途以及内存模型
如果派生类继承了多个基类,基类有虚基类和非虚基类,那么在创建该派生类的对象时,先调用虚基类的构造函数,然后调用非虚基类的构造函数,最后调用派生类的构造函数。都会多产生一个虚基表指针,指向一个虚基表。此虚基表的作用是记录基类的数据在子类内存中存储位置(距离子类起始位置的偏移量),同时在虚基表的第一项也存储了基类虚基表指针距离此基类起始位置的偏移量。可以看到,为了实现虚继承,必须定义相应的虚继承表用于指向虚基类在继承类中的偏移量,虚基类表与虚基类指针的设定都是在编译阶段由编译器生成相应的默认构造函数完成的。
2022-11-22 23:03:19
1019
原创 1.2 C++编译器对指针的解释方式(深度理解c++指针)
当一个父类对象被直接赋值为一个子类时,子类对象内部的值会被切割,以塞入到父类对象内存中,只保留父类相应的数据成员。同时子类的虚表指针也不会被直接初始化,父类虚表指针的值会由编译器直接指定。所以直接赋值后,子类的任何特征都不在基类中了,因此多态也不在呈现。同时,如果一个编译器比较优秀,当基类对象直接调用虚函数时例如。
2022-11-22 22:54:05
937
1
原创 Clion中输入字符串无法终止问题
cin>>str输入终止在c++primer中经常有输入不定个数的字符串:int main() { string str; while (cin >> str) { }}上述代码在vs中可以正常运行,但是在clion中,输入crtl+d系统会自动打印^z,并不会将其作为文件终止符。解决办法:按下ctrl+shift+a,搜索Registry,取消勾选第二个,即可正常运行:...
2021-11-14 12:02:15
3281
5
原创 C++:无符号数相减
无符号数相减 unsigned u = 10, u2 = 42; cout << u - u2;两个无符号数相减,但是由于直接计算的结果是−32-32−32,本机的编译环境中intintint占323232位,所以加模的结果是429496726442949672644294967264。...
2021-10-26 00:20:01
721
原创 C++输入终止符
C++输入终止符在windows环境中,文件的终止符采用的是crtl+Zcrtl+Zcrtl+Z,然后按下EnterEnterEnter键表示结束,但是在ClionClionClion中需要采用和LinuxLinuxLinux一样的方式,即crtl+dcrtl+dcrtl+d表示结束。#include <iostream>#define main16 main16using namespace std;int main16() { int a, sum = 0; w
2021-10-26 00:17:57
3546
原创 Bean的作用域
6. Bean的作用域lazy-init是懒加载, 如果等于true时作用是指Spring容器启动的时候不会去实例化这个bean,而是在程序调用时才去实例化. 默认是false即Spring容器启动时实例化.默认情况下,被管理的bean只会IOC容器中存在一个实例,对于所有获取该Bean的操作Spring容器将只返回同一个Bean。容器在启动的情况下就实例化所有singleton 的 bean对象,并缓存与容器中lazy-init属性(懒加载)如果为false,则在IOC容器启动时会实例化bean
2021-09-12 18:27:20
156
原创 Spring IOC扫描器
5. Spring IOC扫描器Spring IOC 扫描器作用:bean对象统一进行管理,简化开发配置,提高开发效率1、设置自动化扫描的范围如果bean对象未在指定包范围,即使声明了注解,也无法实例化2、使用指定的注解(声明在类级别) bean对象的id属性默认是 类的首字母小写Dao层: @RepositoryService层: @ServiceController层: @Controller任意类: @Component注:开发过程中建议按照指定规则声明注解在使用这些注
2021-09-12 18:26:56
219
原创 Spring IOC注入
4. Spring IOC注入4.1 手动注入set方法注入:package com.xxx.Dao;public class UserDao { public void test() { System.out.println("userDao被调用了"); }}package com.xxx.Service;import com.xxx.Dao.UserDao;public class UserService { private UserDa
2021-09-12 18:26:07
335
原创 Sprgin IOC容器Bean实例化的三种方式
3. Sprgin IOC容器Bean实例化的三种方式构造器实例化:第一步:设置配置文件spring.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.
2021-09-12 18:25:00
144
原创 IOC配置文件的加载
2 IOC配置文件的加载2.1 单配置文件的加载spring.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/
2021-09-12 18:23:58
206
原创 Spring 框架搭建
1 Spring 框架搭建第一步:新建 Maven 项目、设置项目坐标以及Maven环境:设置项目的名称和存放的工作空间:第二步:调整JDK版本<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.
2021-09-12 18:23:26
434
原创 09 监视属性
1. 天气案例计算属性实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>VUE复习</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script></head><body
2021-07-31 11:35:53
186
原创 08 计算属性
1. 姓名案例_插值语法实现<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>姓名案例_插值语法实现</title> <!-- 引入Vue --> <script type="text/javascript" src="../js/vue.js"></script> </head> <b
2021-07-23 14:36:55
226
原创 07 事件处理
1. 事件的基本使用事件的基本使用:1.使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名;2.事件的回调需要配置在methods对象中,最终会在vm上;3.methods中配置的函数,不要用箭头函数!否则this就不是vm了;4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象;5.@click=“demo” 和 @click="demo(event)"效果一致,但后者可以传参;其中event)" 效果一致,但后者可以传参;其中even
2021-07-23 14:26:29
237
原创 06 Vue数据代理
1.回顾Object.defineProperty方法<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>回顾Object.defineproperty方法</title> </head> <body> <script type="text/javascript" > let number = 18
2021-07-23 12:43:19
208
原创 05 MVVM模型
MVVM模型M:模型(Model) :data中的数据V:视图(View) :模板代码VM:视图模型(ViewModel):Vue实例观察发现:1.data中所有的属性,最后都出现在了vm身上。2.vm身上所有的属性 及 Vue原型上所有属性,在Vue模板中都可以直接使用。<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>理解MVVM</.
2021-07-23 12:32:19
190
原创 04 data与el的2种写法
data与el的2种写法1.el有2种写法(1).new Vue时候配置el属性。(2).先创建Vue实例,随后再通过vm.$mount(’#root’)指定el的值。2.data有2种写法(1).对象式(2).函数式如何选择:目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错。3.一个重要的原则:由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了。箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,argument
2021-07-23 12:27:53
191
原创 03数据绑定
Vue中有2种数据绑定的方式:1.单向绑定(v-bind):数据只能从data流向页面。2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data。备注:1.双向绑定一般都应用在表单类元素上(如:input、select等)2.v-model:value 可以简写为 v-model,因为v-model默认收集的就是value值。3.v-bind:可以简写为:<!DOCTYPE html><html> <head> &l
2021-07-23 12:08:38
470
原创 Servlet学习
HttpServletRequest对象1. 常用方法1.1. 获取参数的常见方法 // 获取客户端请求的完整URL (从http开始,到?前面结束) String url = req.getRequestURL().toString(); System.out.println(url); // 获取客户端请求的部分URL (从站点名开始,到?前面结束) String uri = req.getRequestURI();
2021-07-13 22:13:06
214
原创 2021-06-16
关键字this表示引用方法的隐式参数。然而,这个关键字还有另外一个含义。如果构造器的第一个语句形如this(…),这个构造器将调用同一个类的另一个构造器。下面是一个典型的例子:当调用new Employee(60000)时,Employee(double)构造器将调用Employee(String,double)构造器。采用这种方式使用this关键字非常有用,这样对公共的构造器代码部分只编写一次即可。...
2021-06-16 12:15:10
84
原创 显式字段初始化
在类的定义中,可以直接给实例字段赋值,这是不同于c++c++c++的一个重要地方,例如:在执行构造器之前,会先执行这个赋值操作。当一个类的所有构造器都希望把相同的值赋予某个特定的实例域时,这种方式特别有用。初始值不一定是常量值。在下面的例子中,可以调用方法对域进行初始化。仔细看一下Employee类,其中每个雇员有一个id域。可以使用下列方式进行初始化:...
2021-06-16 12:13:44
200
原创 默认初始化
如果在构造器中没有显式地给域赋予初值,那么就会被自动地赋为默认值:数值为0、布尔值为false、对象引用为null。然而,只有缺少程序设计经验的人才会这样做。确实,如果不明确地对域进行初始化,就会影响程序代码的可读性。但是注意如果是一个方法中的局部变量,是必须进行初始化的,否则就会出错...
2021-06-16 12:12:23
139
原创 按值调用与按引用调用
javajavajava采用的都是按值调用,但是要记住,对于引用类型而言,javajavajava生成的副本的值同样也是指向那个对象的,所以也会改变对象的状态。总结为:方法参数不能那个修改基本数据类型的参数方法可以修改对象参数的状态方法不能让一个对象参数引用另一个新的对象对于第三点,有如下的理解:编写一个交换两个雇员对象的方法:但是注意最终是无法实现交换的效果的,因为方法并没有改变存储在变量a和b中的对象引用。swap方法的参数x和y被初始化为两个对象引用的拷贝,这个方法交换的是这两个拷.
2021-06-16 12:10:58
257
原创 静态实例字段与静态方法字段
静态实例字段如果将域定义为static,每个类中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝。例如,假定需要给每一个雇员赋予唯一的标识码。这里给Employee类添加一个实例域id和一个静态域nextId: private int id; private static int nextId;现在,每一个雇员对象都有一个自己的id域,但这个类的所有实例将共享一个nextId域。换句话说,如果有1000个Employee类的对象,则有1000个实例域id。但是,只有一
2021-06-16 12:09:34
200
原创 final实例字段
可以将实例域定义为finalfinalfinal。构建对象时必须初始化这样的域。也就是说,必须确保在每一个构造器执行之后,这个域的值被设置,并且在后面的操作中,不能够再对它进行修改。例如,可以将EmployeeEmployeeEmployee类中的namenamename域声明为finalfinalfinal,因为在对象构建之后,这个值不会再被修改,即没有setNamesetNamesetName方法。public class Employee { private final String nam
2021-06-16 12:05:39
157
原创 尽量不要编写返回可变对象引用的访问器方法
在雇员类中,设计的返回雇佣天的访问器方法为:但是如下,如果更改了ddd,雇员的状态也会发生变化。因为他们之间的状态图如图所示:如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone)。对象clone是指存放在另一个位置上的对象副本:...
2021-06-16 12:04:38
128
原创 构造器实参存在null类型
假设我们不希望hireDayhireDayhireDay类的namenamename字段被构造器初始化为nullnullnull,宽容型方法如下: if (n == null) { name = "unknown"; } else { name = n; }在java9java9java9中,objectsobjectsobjects类对这提供了一个便捷的方法: public Employee(Str
2021-06-16 11:51:21
160
原创 对象与对象变量
在javajavajava中newnewnew操作符的返回值是一个引用,所以下面的第二个只是声明了一个对象变量dedalinededalinededaline,而实际上它没有引用任何对象,所以是不能使用任何DateDateDate的方法的。 Date birthday = new Date(); Date deaeline;...
2021-06-16 11:50:04
82
原创 类之间的关系
依赖(dependence):依赖(dependence),即“uses-a”关系,是一种最明显的、最常见的关系。例如,订单(Order)类使用账户(Account)类是因为Order对象需要访问Account对象查看信用状态。但是商品(Item)类不依赖于Account类,这是因为Item对象与客户账户无关。因此,如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。应该尽可能地将相互依赖的类减至最少。如果类A不知道B的存在,它就不会关心B的任何改变(这意味着B的改变不会导致A产生任何bu
2021-06-16 11:48:25
87
原创 考研英语作文笔记(刘晓燕强化班)
写作句型简单句1. 被动句被动:只要在作文中有:我们……、人们……、大家……、许多人……、越来越多的人……等人或人称代词做主语的时候,都可以考虑写成被动我们应该孝敬父母:Parents should be respected by usparents 替换superiors 父母,长辈,上司;比……优秀the elderly 长辈shouldought to 应该be supposed to 应该做某事be obliged to 有责任,有义务(注意这个是有法律上的义务
2021-05-10 11:53:27
10340
4
原创 考研数学:算子法
于二阶常系数非齐次线性微分方程:y′′+py′+qy=f(x)y^{\prime \prime}+p y^{\prime}+q y=f(x)y′′+py′+qy=f(x)定义算子P(D)=D2+pD+qP(D)=D^{2}+p D+qP(D)=D2+pD+q其中微分算子DDD满足Dy=y′,D2y=y′′D y=y^{\prime}, D^{2} y=y^{\prime \prime}Dy=y′,D2y=y′′,则二阶常系数非齐次线性微分方程等价于P(D)y=f(x)P(D) y=f(x
2021-05-09 17:34:36
2148
原创 极坐标计算重积分交换积分次序
1.极坐标计算重积分交换积分次序2.1.类直角坐标法将极坐标(θ,ρ)(\theta, \rho)(θ,ρ)看做类似直角坐标(x,y)(x,y)(x,y)的情况,将θ\thetaθ看做横坐标,讲ρ\rhoρ看做纵轴,画出(θ,ρ)(\theta, \rho)(θ,ρ)的直角坐标图和积分区域图形,然后像直角坐标下交换积分次序那样交换θ,ρ\theta, \rhoθ,ρ的积分次序例一:在极坐标下交换积分次序:I=∫−π4π2dθ∫02cosθf(rcosθ,rsinθ)rdrI=\int_{-\fr
2021-05-09 17:33:07
10393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人