cpp
markrenChina
不将变量声明为某个特定的具体类的实例对象,而是让他遵守从抽象类所定义的接口。
展开
-
windows C启动JDK11的JVM
jvm c/c++原创 2022-04-30 16:24:52 · 1278 阅读 · 0 评论 -
windows 注册表get/set
JNI 在开发的项目需要操作到Windows注册表,就想起《java 核心技术》(第11版)里面有个jni示例。抄! 跑一下示例,结果跑不起来,会在java层收到一个自定义的异常,异常信息是“Open key failed”。 原因是,测试代码在setValue,打开一个空的注册表项,需要改一下代码: 老的语句: if (RegOpenKeyEx(root, cpath, 0, KEY_WRITE, &hkey) != ERROR_SUCCESS) 新的 if (RegCreateKeyExA(r原创 2022-04-16 15:43:48 · 1116 阅读 · 0 评论 -
operator overloading(操作符重载)在c++与kotlin
编译器对c++ 操作符认知,比如: { ... obj a,b; //a,b为obj对象 a += b } 编译器会去寻找a中的 += 符号定义,如果存在则相当于调用a的+=函数,入参为b。 //伪函数 c++函数隐藏入参this 就是例子中的a //python中self就是c++中的this显式 obj::operator += (this,const obj& b) { return ... } kotlin的操作符重载: 也是编译器干活,也是编译器找左边的实例函数去执行,只不过原创 2021-08-23 23:00:12 · 129 阅读 · 0 评论 -
inline在c++与kotlin
在c++中,inline用于升级c的宏定义define,他消除了define的缺点,又继承了define的优点。define宏定义,主要就是参数替换。所以,inline是可以(不一定会)进行编译期替换的。 在kotlin中,inline是对带函数参数的函数进行编译期优化,通过反编译,inline函数是把函数内容粘贴到调用处。 得出,都是在编译期的性能优化,都是通过替换,但是c++的inline是不一定的,kotlin的inline是一定的(实际上如果不带函数参数的函数,使用inline IDEA会提示没有必原创 2021-08-22 23:06:09 · 226 阅读 · 0 评论