V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wutiantong  ›  全部回复第 27 页 / 共 32 页
回复总数  622
1 ... 19  20  21  22  23  24  25  26  27  28 ... 32  
你这标题里是不是 at 不到呢?
如果各方能对依赖的版本控制审查的更严格些理论上是可以避免此类问题的吧?
@GeruzoniAnsasu 上文第 2 点,我可能对“除非 B 是 A 的派生类型”这里有些误解,但我知道你想强调的是“隐式转换导致的耦合”。如果是把两个关联很弱的类硬拉凑到一起做个隐式转换,这的确会产生额外的耦合。但是“额外的耦合”这种问题本质上并不应归咎于一个无辜的语法特性,而应归咎于设计者的缺乏经验及不慎。
@GeruzoniAnsasu

1. STL 里面就有很常见的 std::basic_ios,std::shared_ptr 到 bool 的转换。

2. “ A 转 B 的写法也必定是侵入式的,一定程度上破坏了封装,除非 B 是 A 的派生类型” ,从侵入的角度来说,在 B 里面定义 operator A() 跟 把 B 定义为 A 的子类 是没有区别的,你再仔细想想?

3. 通过继承和多态引入的语义以及性能负担与定义隐式转换不可同日而语,它们有不同的使用场景。

4. 代码中的 UNIFORM_VALUE_TYPE 可以用 std::common_type 来改善。

5. 代码中 comparable 这个接口类实现了一个统一的比较接口,但它实际上并没有做任何具体的比较(而是委托给了两个 value 的 common_type 的比较函数),这跟我所要做的事情本质上并无关联。
2018-11-27 12:01:50 +08:00
回复了 hackpro 创建的主题 C++ C++ 操作符优先级推断
@hackpro 不好意思我不太了解虚函数表,关于虚函数的语言细节你可以参考:
https://en.cppreference.com/w/cpp/language/virtual
2018-11-27 11:22:15 +08:00
回复了 hackpro 创建的主题 C++ C++ 操作符优先级推断
你这 1,2,3 错了呀,先取 subscript 然后 dereference
2018-11-27 11:02:50 +08:00
回复了 STRRL 创建的主题 程序员 程序员不善于交际吗?如果是的话,怎么改善呢?
同事间与工作无关的交流太多根本就不是什么好事。
你想交朋友的话就应该去寻找同好。
@GeruzoniAnsasu 不认同这个说法,你在哪看到的?
@feverzsj 这是否意味着将此类 operator 或 function 声明为 friend 放在 template class 内部(总)是一种更好的实践?
@feverzsj 有道理
@429839446 你之前遇到过这个问题么?
2018-11-26 13:34:05 +08:00
回复了 itingyuji 创建的主题 求职 辞职走佬,求大佬带
这个世界没有你想象的那么友好
2018-11-26 11:09:15 +08:00
回复了 xiaottt 创建的主题 程序员 问一下关于 C/C++的头文件和库的问题
无论是写 makefile 还是写 cmake 都能搞定这个的呀
“目前还在职,面试时间最好在 18:00 以后”

不要有这种想法。
2018-11-23 17:10:40 +08:00
回复了 wutiantong 创建的主题 C++ 分享一个 C++里较冷的知识点: Pointers to Members
总结一下它们的核心区别:
普通 pointer 可以随便 dereference,pointers to members 要需求一个对应类的实例才能 dereference

这有点像 java 里面 static 内部类和 non-static 内部类的区别。
2018-11-23 14:42:48 +08:00
回复了 marcushbs 创建的主题 程序员 语音听写单词 app,为什么所有智能音箱都没做呢?
Good idea, I will try
2018-11-23 13:46:57 +08:00
回复了 xxxy 创建的主题 程序员 好像不想上班已经成为 v2 的日经贴了
我热爱上班,放假比上班更累。
2018-11-23 13:23:34 +08:00
回复了 hackpro 创建的主题 C++ C++ 模板重载问题请教
@hackpro 关于生命周期和临时变量,请参考: https://en.cppreference.com/w/cpp/language/lifetime
2018-11-23 13:21:47 +08:00
回复了 hackpro 创建的主题 C++ C++ 模板重载问题请教
@hackpro

其实 C++的*标准*并不涉及内存上的堆栈问题(包括寄存器),*标准*不关注这些东西,需要关注这些东西的是具有不同*实现*的编译器。
但是*标准*确实会关注对象的生命周期,在*实现*中对象的生命周期与堆栈之间有紧密的关联。

“这个返回值是存在被调函数的栈帧中吗?” 答:这个返回值是一个临时变量。

换个角度来说,我写 C++好几年了,我只关注*标准*定义了哪些概念哪些行为,这对我而言就足够了。
我不会特意去关注具体*实现*的内部细节,除非它产生的行为与*标准*产生了偏差。

所以我也不关心“函数调用时栈帧的实际布局是什么样子的”,这个问题对我而言既无意义也无帮助。
@codehz 我的实际场景没有那么复杂。。。只是个很单纯的类。。。
@RaynorGu 我前两天试着用继承来做,结果其实并没有简化多少,因为在子类中还得加很多 using 重新声明。。。

我目前的做法是把那个类又进一步拆开成两个了,也就是说,把产生差异的那部分单独组成了一个类,然后这两个类如同双子一般支持相互 conversion。。。
1 ... 19  20  21  22  23  24  25  26  27  28 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   874 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.