logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C++】005、struct与class的区别

/ ✅ 好:struct 表示纯粹的数据聚合// ✅ 好:class 表示有约束的实体对象private:// 必须 >= 0,有业务约束(不变量)public:void deposit(double amount) { /* 校验逻辑 */ }void withdraw(double amount) { /* 校验逻辑 */ }

#java#算法#开发语言
【C++】002、const关键字使用

底层const (const int *),规定指向的值不能改变,赋值给int*后,约束破坏了,他可以修改对象的值。在成员函数声明末尾加const,表示该函数不会修改任何非静止成员(变量mutable成员除外)顶层const (int* const), 指向的指针不能改变,但是对象值可以改变,不受影响。const关键字在C++中不只是表示常量,他的核心是只读契约。特点:值不能改,但指针可以改(是顶

#java#jvm#开发语言
【C++】003、static关键字

场景存储位置/生命周期作用域/链接性初始化次数局部变量静态存储区(程序结束时才销毁)函数内部/作用域为函数范围1次(线程安全)全局变量/函数静态存储区本文件内部(内部链接)1次(程序启动时初始化)静态成员函数静态存储区(全局共享)类域(需外部定义)1次静态成员函数无this,属于类类域(通过类名调用)--

#java#c++#jvm
【C++】007、宏与inline的区别

场景:函数体包含循环(for/while),递归,switch分支过多,或静态变量声明时,编译器通常会自动忽略inline请求,把它当做普通函数进行处理。场景:通过基类指针或引用调用virtual inline函数时,由于调用目标在运行时才能确定(查虚表),编译器无法再编译期展开内联函数。场景:当把inline函数赋值给函数指针,或者通过函数指针回调时,编译器必须生成该函数的实际地址(可执行实体)

#算法
【C++】006、#define与const的区别

const:本质上是变量,全局const存储在.rodata段(只读数据段),局部const存储在栈(stack)上。为规避宏定义的副作用,现代C++代码实践中不建议继续使用#define,改用替代方案。#define宏定义是在预处理阶段,进行文本替换操作,属于预处理器管辖。#define使用场景,只在头文件防卫,条件编译和日志/断言中使用。他们在类型安全,作用域,内存分配和调试体验上都有着本质差

#java#开发语言
【C++】008、sizeof与strlen的去呗

sizeof是C++操作运算符,在编译期计算内存字节数strlen是C标准库的函数,在运行期通过遍历直到遇到'\0'来计算字符串的长度。

#java#开发语言
Flutter报错:No Material widget found Switch widgets require a Material widget ancestor

在Flutter开发中,如果出现如下报错信息No Material widget found Switch widgets require a Material widget ancestor一.问题原因分析:1.首先你应该使用了material风格的控件,如Textfield,Switch等;2.使用这些控件的时候在build方法中根Widget没有使用Scaffold作为根控件二 ...

ToolBar标题文字居中的方法

在项目的开发中,使用苹果手机的产品,出的界面效果图极有可能(我这里是一定)完全是按照苹果的界面风格来出的,例如界面顶部的title文字位置是水平居中如图:那么问题来了,当我们使用ToolBar控件进行开发时,ToolBar的文字位置默认是靠左对齐的,不过这不能难道聪明的安卓开发者,解决方法如下:1.只需要在ToolBar中添加TextView控件,设置位置为水平居中即可,代码奉

到底了