- 主题:有C/C++/QT大佬吗?可否交流下
所以用 Qt 啊。容器都是使用 COW 技术,内部有个引用计数,相当于 shared_ptr<> 省事。
【 在 toutouqi (toutouqi) 的大作中提到: 】
: 语法太多,我觉得这就是c++烂的地方,有些语法是为了防错,有些是提供一部分便利但又引入潜在问题,把路都走歪了。比如容器的move特别不习惯,move来move去,我还不如直接用指针呢。
: 其实最有用的是老老实实增加有用的库,数学库,用个PI都不方便,看到很多代码里都自己定义。
--
FROM 140.224.34.*
Qt做界面,UI类的对象只管new,不管delete,确实感觉很方便,不知道用来做算法会不会有潜在问题。
【 在 hgoldfish 的大作中提到: 】
: 所以用 Qt 啊。容器都是使用 COW 技术,内部有个引用计数,相当于 shared_ptr<> 省事。
:
--
FROM 223.104.39.*
如果要返回t&,那根返回t*有什么区别?
当然是返回const t&,否则就t*,大方一点。
再不然就是智能指针了。
【 在 hgoldfish 的大作中提到: 】
:
: 如果都是入参,而不是作为返回值使用的,就统一用 const T & 啊。
:
: 作为返回值就比较麻烦了。我现在也搞不清楚要传 T* 还是 T&. 前者需要判断一下非空,后者不需要。但后者在调用时,不容易和 const T & 区别开来,阅读的时候不容易看清楚是出参。
:
--
FROM 124.64.19.*
谁new谁delete,基本原则
再不然智能指针。
话说这不是基础的原则吗?
【 在 zpfzhang 的大作中提到: 】
:
: 外面需要new/delete 吧?
: 【 在 smile1314 的大作中提到: 】
: : 传指针进去直接取地址就行了啊,不用new delete
:
--
FROM 124.64.19.*
有legacy code的确麻烦一些。
我做的东西基本自己都是完全控制的,原来的代码大概9年之前用11写的,最近用17在重写,的确有很多地方不同
现在optional, tuple, variant这套东西,在设计的时候就是为内存友好设计的,的确是以后的大方向。
python做做原型设计还行,数据量大了基本就是玩具。
【 在 hgoldfish 的大作中提到: 】
: 嗯。。有道理。但返回 pair tuple 的话,旧版 c++ 的支持不太好吧。在 python 里面比较方便,我就很喜欢用这个模式:
: value, flag = do_something()
: if not flag:
: ...................
--
修改:ziqin FROM 115.205.66.*
FROM 115.205.66.*
有时候需要主程序给被调用函数一个空(或者无效)指针,函数负责分配内存,主程序来释放。约定好调用规则,以前没有智能指针的时候也不会出错。
【 在 hyperLee 的大作中提到: 】
: 谁new谁delete,基本原则
: 再不然智能指针。
: 话说这不是基础的原则吗?
: ...................
--
FROM 223.104.39.*
可能是我之前java写的多一点,我习惯是都传引用,如果是参数就用const,不是就不带。
加了const之后很多费const操作就不能执行了,所以区分上问题也不是很大。
【 在 hgoldfish (老鱼) 的大作中提到: 】
如果都是入参,而不是作为返回值使用的,就统一用 const T & 啊。
作为返回值就比较麻烦了。我现在也搞不清楚要传 T* 还是 T&. 前者需要判断一下非空,后者不需要。但后者在调用时,不容易和 const T & 区别开来,阅读的时候不容易看清楚是出参。
【 在 zpfzhang (zpfzhang) 的大作中提到: 】
: 每次传参数用指针还是引用都晕
: 永远不懂
: - 来自「最水木 for iPhone 8」
: ...................
--
FROM 123.118.97.97
我只敢写familiar ...
【 在 allegro 的大作中提到: 】
: 我简历里面写proficient in C++,每次都心惊胆战。
--
FROM 111.197.115.*
如果是 c 语言,考虑到 dll 和主程序可能使用不同的内存分配函数,最好还是谁申请谁负责销毁。弄个`obj_t create_xxx()`和 `delete_xxx(obj_t obj)`
c++ 有析构函数,统一谁 new 谁销毁吧。
【 在 toutouqi (toutouqi) 的大作中提到: 】
: 有时候需要主程序给被调用函数一个空(或者无效)指针,函数负责分配内存,主程序来释放。约定好调用规则,以前没有智能指针的时候也不会出错。
--
FROM 140.224.34.*
巧了,我也是 java 写多以后才写 cpp 的。
从 c 过来的人,估计会习惯传 *
java 的引用和 cpp 的引用是不一样的。还是需要注意。
cpp 的 const 值类型带有 immutable 的意思。我很喜欢用。虽然其实并不是。
【 在 blueboats (天·地·魔·鬥) 的大作中提到: 】
: 可能是我之前java写的多一点,我习惯是都传引用,如果是参数就用const,不是就不带。
: 加了const之后很多费const操作就不能执行了,所以区分上问题也不是很大。
: 如果都是入参,而不是作为返回值使用的,就统一用 const T & 啊。
: ...................
--
FROM 140.224.34.*