V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codehz  ›  全部回复第 84 页 / 共 133 页
回复总数  2657
1 ... 80  81  82  83  84  85  86  87  88  89 ... 133  
2020-10-30 18:22:27 +08:00
回复了 bluehtt 创建的主题 Linux 请大家帮忙看看 ssh 远程命令如何避免被本地解析?
(对面开一个 bash -然后本地用文件 pipe 过去
2020-10-30 17:57:20 +08:00
回复了 awanganddong 创建的主题 程序员 shell 怎么将变量中的特殊字符替换掉
特殊符号用斜杠转义,其他的不变
${var/\'/2333}
2020-10-30 17:36:42 +08:00
回复了 awanganddong 创建的主题 程序员 shell 怎么将变量中的特殊字符替换掉
你括号错了
2020-10-26 23:00:42 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@Tony042 还是有点关系的,std::bind 也可以应用于指向成员的指针
std::bind(&Test::a, _1)是可行的(相当于拿到了一个 int &(Test&)的函数)
2020-10-26 17:52:56 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@QBugHunter #32
首先,c++的 class 和 struct 根本没有自带立场,只是某些编码规范强加的属性。。。
其次,直接访问成员的危险性在于破坏了潜在的维护性,但前提是它真的是需要隐藏的实现细节。。。
然后这个语法也不是不可以在类内部导出成员指针。。。
最后,这个语法也是另一个层面的“接口”,只不过抽象程度更高,而不具备一般意义上的形式而已。
相当于提供了一个特定上下文下,设置和读取特定值的方法。
然后它们都可以被模板化(上下文类由用户编译期指定,用成员函数来指定特定的成员),只要你认同模板的封装的功能,你就应该理解这种语法也有它存在的意义(结合上面的)。。。
2020-10-26 16:46:52 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@QBugHunter #29 是回的第四种写法(
其他三个问题没啥好问的,问就是作者想这样做而已,毕竟目的不是为了可维护性什么的,就为了演示 /实验这个用法。。。
--
我猜测你可能把这个用法当作“绕过 private 访问”的用法了,才会有这三个问题(
2020-10-26 16:34:15 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@QBugHunter #27 有意义啊,就像函数指针有啥意义,为啥不用函数一样,通过指针可以实现间接访问,而计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决(
总所周知,c++暂时还没有编译期反射这种东西,没法按照名字来访问未知类型的成员,但是有了这个机制,你至少可以让用户传入成员的指针,然后在模板函数中实现对成员的操作。。。
这种事在 c 的世界也不是没有,那时候通常都是用偏移量( offsetof ),显然直接的偏移量在 c++的世界有诸多水土不和的问题(例如多继承的问题和类型安全的问题),自然要设计一个适合于 c++的"偏移量"解决方案。。。
2020-10-26 12:23:48 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@Akiyu 别啥都以汇编为导向,c++这玩意实现定义的东西很多,如果按某个特定实现来学,很容易写出不可移植的东西出来(甚至有些编译器升级也会打破原有的假设)
打印为 1 的原因就是
1.编译器没有找到合适的 operator<<重载
2.然后发现存在一条隐式转换规则(空成员指针值变为 false ;所有其他值变为 true )
3.接着发现它不是空成员指针,就转换成 true
(注意,这里不是表示实现定义的值不为 0,实际上如果按照偏移量方式实现,那平凡结构体的首个元素就应该是 0,但是它不是空成员指针,所以仍然是 true)
4.标准约定默认布尔类型输出规则是 true -> 1 false -> 0,所以这里输出 1
2020-10-26 10:35:53 +08:00
回复了 amrnxcdt 创建的主题 问与答 编译 lineageos 的官方内核出错,“make: *** [sub-make] Error 2”
不是退回,而是需要使用 prebuilt 的工具链,需要适配构建目标的内核版本。。。
当然这种问题主要是在单独编译内核的时候才出现的,如果是从安卓源码树(或者 lineageos 的完整源码 repo )下进行构建,就会把相关编译器准备好的
2020-10-26 08:47:42 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@elfive 当然有,甚至很多属于非开源的代码库。。。
举个例子,根据逆向工程结果(实际上是符号表里直接看到的),mc 基岩版在处理指令注册的时候使用这个方法把类中的成员注册成指令的参数,这样,指令解析程序就可以在解析指令文本的时候把参数填入那个类了,不使用这个方法,你就需要写一大堆包装函数(虽然实质上确实用模板生成了他们)
2020-10-26 08:41:11 +08:00
回复了 amrnxcdt 创建的主题 问与答 编译 lineageos 的官方内核出错,“make: *** [sub-make] Error 2”
一般来说是编译器版本太新了,有很多新的警告,配合 Werror 不就 boom 了吗
2020-10-25 23:37:52 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
@GeruzoniAnsasu 不一定是偏移量,具体值是实现定义
考虑一下虚继承,其中任意子类拿出来都要可以->*方式访问
2020-10-25 22:52:26 +08:00
回复了 rainboat 创建的主题 C++ 被 C++的语法问题折磨了,有没有大佬帮我解答一下疑惑
百度和谷歌有合作,共享大数据(狗头
你可以在圆括号里换行的啊(
2020-10-23 21:03:34 +08:00
回复了 VioletTec 创建的主题 分享发现 [吐槽] Windows 中 net 命令的迷惑行为??
(其实是帮助信息就是这一段。。。。
没有更详细的而已
2020-10-22 10:54:19 +08:00
回复了 portus 创建的主题 问与答 [求助] 电脑拷贝文件时间约 10 分钟系统失去响应
你电源功率不够
2020-10-21 16:21:26 +08:00
回复了 Djangoogle 创建的主题 Android Android app(Service)如何在后台随时随地弹出/关闭悬浮窗?
SYSTEM_ALERT_WINDOW 权限给了吗,定制设备的话,放 vendor 里是直接默认授权的(但是也得在清单里写
2020-10-21 15:09:40 +08:00
回复了 QBugHunter 创建的主题 C++ C++有没有类似 Java 的 final class
有,只不过 final 关键字要加在类名的后面(
https://en.cppreference.com/w/cpp/language/final
2020-10-20 20:32:12 +08:00
回复了 kerb15 创建的主题 Android 为什么安卓源码经常用反射不用 new?
因为 clazz 是运行期传入的。。。
1 ... 80  81  82  83  84  85  86  87  88  89 ... 133  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2768 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 12:56 · PVG 20:56 · LAX 04:56 · JFK 07:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.