V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wutiantong  ›  全部回复第 5 页 / 共 32 页
回复总数  622
1  2  3  4  5  6  7  8  9  10 ... 32  
2021-02-02 13:58:31 +08:00
回复了 alary17 创建的主题 职场话题 离职被狗血领导的三番五次蹂躏
@murmur 楼主本来是希望合同到期自然走人的,但出于某种单方面的善意(中间过了个年怕耽误交接?)他觉得应该“提前”跟公司对接这些事情。
然而公司并没有尊重楼主的本意,直接就按他已经主动提离职申请来处理了。

我觉得公司问题不大,楼主缺乏经验自己给自己挖坑了。
2021-02-01 17:43:16 +08:00
回复了 mathzhaoliang 创建的主题 C++ 求助一个 C++ 构造函数问题
@mathzhaoliang 为啥没区别呢?你这个说法有啥出处?
2021-02-01 15:58:00 +08:00
回复了 mathzhaoliang 创建的主题 C++ 求助一个 C++ 构造函数问题
你可以自己解释一下,你对那个 explicit 有啥预期?
2021-01-29 10:22:55 +08:00
回复了 Lunatic1 创建的主题 问与答 老哥们,今年过年要去女朋友家应该送老丈人啥东西呀?
还没结婚就老丈人丈母娘的叫了?
2021-01-26 14:10:50 +08:00
回复了 mightofcode 创建的主题 Java JAVA8 的 Optional 是鸡肋
@James369 曾经也写过 swift,链式的?和??的设计确实不错。但代码中过多的感叹号和问号真的会影响观感和可读性。

究其根源在于他们的标准库从上一代( Obj-C,Java )一脉相承,里面难免带入了很多 nullable 语义,导致实际代码中 optional 类型极度泛滥。

反观现代 C++,在最佳实践中大部分类型都遵循值语义,天然是非空的,所以根本就不需要考虑 optional 操作,只有在你需要 optional 语义的地方才会引入 optional 类型。所以可读性方面反而明显更佳。
2021-01-26 13:46:54 +08:00
回复了 mightofcode 创建的主题 Java JAVA8 的 Optional 是鸡肋
@James369 你可以理解为参数声明为指针类型就是在提醒你这个参数必须要在堆上构建
@James369

所以也正是因为 QObject 的子类都必须要在堆上构建,它们才会被声明成指针类型的格式。
@wutiantong

再提一下,基于我对 Objective-C 的了解,如果 QObject 和 NSObject 是差不多的话,那么它的各种子类,都应该在堆上动态分配内存(这一步会涉及到引用计数的内存管理,很可能 QObject 重载了 new 方法)

所以,你确实不应该在栈上直接构建一个 QObject 的子类对象。
@James369

看起来,之所以是指针( QHttpMultiPart *或 QIODevice *)的原因在于这些类型都是 QObject 的子类,相对的 QNetworkRequest 和 QByteArray 就不是继承自 QObject

QT 里的 QObject 这套设计应该是很早期的,非常类似于 Objective-C 里的 NSObject,为了与 C 兼容会选择用指针类型来表达对象。

脱离开 QObject 的类型就更接近于现代 C++,一般是不鼓励用指针传参的,而应该用引用。
一般不存在你说的这种堆 /栈区别,
我查了一下,QIODevice 是个抽象基类,是不能直接构建的。
那么无论是 QIODevice dev; 还是 new QIODevice 都应该要报错的才对。
要不你再检查一下?
2021-01-20 11:14:31 +08:00
回复了 wohenfuyou 创建的主题 问与答 c++指针的问题,我有点晕
@wohenfuyou 返回裸指针的函数无法延续对象的生命周期,指针传出来了但对象死掉了。
2021-01-20 10:52:47 +08:00
回复了 wohenfuyou 创建的主题 问与答 c++指针的问题,我有点晕
save an object, not a pointer
2021-01-14 14:35:34 +08:00
回复了 tanwill12138 创建的主题 问与答 你有多久没有回首往事了?
很多往事已如隔世了。
2021-01-14 14:23:13 +08:00
回复了 dorafmon 创建的主题 推广 给新手 C++ Developer 的 Tips 1
@dorafmon 你没有认识到 noexcept 这个关键词的设计意图
2021-01-14 14:21:05 +08:00
回复了 dorafmon 创建的主题 推广 给新手 C++ Developer 的 Tips 1
@dorafmon

这个知识点是没问题的,但你的论述可能是有问题的。

我们在 C++ Core Guidelines 中可以找到关于这个知识点更清晰更正确的论述:

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rc-dtor-fail
2021-01-13 18:28:41 +08:00
回复了 DinoStray 创建的主题 问与答 最近到处看到 lint 这个单词, 好奇是啥意思
当你代码写得有毛病时,功能强大的 IDE 会贴心地用下波浪线来提醒你,这就是 linter
2021-01-13 11:08:23 +08:00
回复了 dorafmon 创建的主题 推广 给新手 C++ Developer 的 Tips 1
@dorafmon

是有这样的说法,但既然不是 ub 就可以在充分了解的前提下加以利用。

我倒想考考,你能简洁地讲清楚 noexcept 应该怎么写么?
2021-01-12 22:10:52 +08:00
回复了 dorafmon 创建的主题 推广 给新手 C++ Developer 的 Tips 1
没有稿子磕磕绊绊的讲解令人难以忍受。
另外我查了,析构函数是可以抛异常的,即使在 stack unwinding 中也不是未定义行为:

As any other function, a destructor may terminate by throwing an exception (this usually requires it to be explicitly declared noexcept(false)) (since C++11), however if this destructor happens to be called during stack unwinding, std::terminate is called instead.
https://en.cppreference.com/w/cpp/language/destructor
2021-01-11 16:27:10 +08:00
回复了 wohenfuyou 创建的主题 C++ 请问大家, boost::shared_ptr 无法赋值为 null 么
@wohenfuyou 其他方法就是楼上那样的,也就是 boost::shared_ptr<ControlArea>()
1  2  3  4  5  6  7  8  9  10 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5260 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 423ms · UTC 09:22 · PVG 17:22 · LAX 02:22 · JFK 05:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.