V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  secondwtq  ›  全部回复第 121 页 / 共 123 页
回复总数  2453
1 ... 113  114  115  116  117  118  119  120  121  122 ... 123  
2015-06-23 06:03:10 +08:00
回复了 Jasio 创建的主题 分享创造 :doge: 开源一个 SpriteKit 的 2D 地图解析库- SKTiledMap
@XadillaX 突然发现 repo 里面那几张图里面有棵树特别像 RA2 里面的某个 asset...
2015-06-23 01:51:16 +08:00
回复了 codercai 创建的主题 C 虚函数/虚继承对对象内存大小的影响,凌乱中......求指引
@codercai 你也许把“子类实例是子类的父类部分与子类部分所拼接起来的”和这个搞混了
子类和父类实例使用不同的 vtable,其 vptr 的值也相应是不一样的。但是每个实例中只有一个 vptr(对于单继承来说是这样的)。

可以这样说,vtable 不能简单被分为“基类”和“子类”两个部分,一个对象的 vptr 所指 vtable,其中包含了该对象实际类型中所有可以用指针/引用直接调用虚函数(包括父类中未被子类 override 掉的,子类新定义的,和子类 override 掉父类的)。因此任何一个实例,只有一个 vptr 的位置(依然是只针对单继承)。

我个人平常的理解是,这个 vptr 相当于对象的一个“类型信息”或者类型的 ID,据我所知某些动态语言的实现中,对象实际在内存中的大小是不定的,但是每个对象头部的结构是确定的,这个头部中存储了必要的类型信息,据此可推导出对象的具体“类型”,以及该对象究竟符合哪一种布局。

C++ 中一个实例对象的实际类型可能有好几层继承,涉及到若干个基类,但是其类型总是能唯一确定的。
2015-06-22 18:19:13 +08:00
回复了 codercai 创建的主题 C 虚函数/虚继承对对象内存大小的影响,凌乱中......求指引
@codercai 另外,之所以基类和派生类不共用同一张虚函数表,我个人认为是因为同一个基类可能会派生出多个子类,并且它们可能会增加、覆盖不同的虚函数。

而在进行虚函数调用的时候,你所拥有的信息只有:一个 vptr 及该 vptr 指向的 vtable;类型定义;指针/引用的类型(不一定是对象实际类型,但是就算不是也一定是其基类);由类型信息所推导出的,编译器写入可执行代码的一个索引。

这些信息,除了第一项是运行时的,后三项全部是编译时确定的。我觉得如果共用一张 vtable 的话,在以上条件下,是无法处理第一段所描述的复杂情况的。
2015-06-22 18:11:58 +08:00
回复了 codercai 创建的主题 C 虚函数/虚继承对对象内存大小的影响,凌乱中......求指引
@codercai 我细节很多地方都忘了,不过这块还是有点记忆的。

无论是基类还是派生类的对象实例,都只会有一个 vptr,占据对象布局中相同的位置。
所不同的只是其指向的虚表。

你想啊,加一个继承层次,就在其所有实例对象上加一个 vptr,这样做,和所有需要 vtable 的实例对象都有且只有一个 vptr,哪个成本低。
况且还有一个关键问题就是,如果子类实例对象有多个 vptr(单继承),当你使用基类指针调用虚函数的时候,是根本没有办法判断该指针所指对象是不是拥有楼主所推断出的“多出来”的那个 vptr 的。

实际情况是,基类和派生类的对象实例,都有且只有一个 vptr,并占据对象布局中相同的位置(当然是有虚函数的时候)。而在不同类型的对象实例中,这个指针指向不同的 vtable。

举个栗子,如果你知道了不同类型对象虚表的地址,在你对 C++ 搞出来的可执行程序做动态汇编调试的时候,找到一个对象的位置,那么在 hex view 里面瞄一眼这个对象的开始几个字节(vptr 的位置),就能知道这个对象是什么类型,我管这个叫人肉 RTTI :)

C++ 运行期多态的精髓,窃以为就在这个虚指针上。另外我个人一般是把这个 vptr 当作一个 data member 来看的。
2015-06-22 04:17:36 +08:00
回复了 sneezry 创建的主题 分享发现 面试前端实习生时被问到的问题
@Septembers 那个维基的文章不错,谢谢了。

另外我认为有些包含重要信息的请求使用 GET 时,内容至少在客户端 URL 是直接可见的,POST 的话不开 Developer Tools 基本是看不到的。
最直接的影响之一就是我们学校的教务系统,可以直接用 GET 登录,结果就是 URL 放浏览器地址栏上别人过来瞄一眼密码全看见了(不要指望他会有加密...)。

并且如果你要在 HTML 中链接跨域的资源的话,是只能使用 GET 请求的。
高考完之后一段时间对二次元的东西很着迷,当然有很大的个人原因

现在再看反而觉得有些讨厌,与现实太遥远
秒五忘了啥时候看的了,反正至少一年之前的事了,反正没看懂

倒是互联网之子有空要看一下
2015-06-21 01:11:24 +08:00
回复了 n0o0a0h0 创建的主题 C 关于 C++多线程的一个问题
我在 Linux 下测试,结果和原文差不多。
在 Mac 下测试,结果和楼主给的差不多。
2015-06-21 00:36:18 +08:00
回复了 gzxultra 创建的主题 Python 请问 Python 能用来编写桌面应用么
学校会接受 OS X 的作业么?

我其实有 Windows 桌面程序的需求,原因是要做一些小工具。现在比较火的快速开发框架,Python,node-webkit 之类,都有一个问题,就是如果在一般用户的机器上面跑,我是不用指望那边有 Runtime 的。偏偏这俩货的 Runtime 都臃肿的一比。

OS X 倒还好些,起码预装了 Python,Ruby etc. 不过我看到这个东西,第一反应是 PyObjC... Tk 据说还可以,没用过,但是 Git 自带一个 GUI 工具,切到一个 repo 目录下面运行 gitk 就能看见了... 你可以看看那货源码,我只能表示涨姿势了,我觉得弄出这么一个工具来,这个框架还凑合。
2015-06-20 20:36:07 +08:00
回复了 tianshilei1992 创建的主题 C 二重指针申请和释放空间的正确姿势(C/C++)
@thinkIn 这是 Markdown 的锅...
2015-06-20 20:27:52 +08:00
回复了 nikoukou 创建的主题 程序员 i3+2g 内存可以做什么开发?
以前在家里用 Windows 7,Aero 关掉勉强能跑,改游戏配置,做点小模型,可惜显卡比较渣。现在 8.1 应该更适合低配机才对。

前段时间在学校装了个 Arch,直接 ssh+vim 写乱七八糟的作业,在 Mac 写的程序/服务,也可以传过去测试兼容性。现在在玩 Docker。顺便基本不用 VS。

Web 开发我看够呛,我在上面开 Chromium 标签一多卡的要命,Web 这个东西本来就是牺牲性能(尤其是内存占用,并且 Chromium 系尤甚)换抽象和开发效率,包括 Atom,VS Code 这种基于 Node 和 Chromium 的工具,我不认为运行效率会太高。做后端还可以,各种工具都兼容,还有 Docker 这种福利。前端的话我感觉现在的 Mac 内存大,GUI 性能高,颜色准,工具方便,也好看,就是迭代之后千万记得到 Linux 下面看看效果...
2015-06-20 20:13:13 +08:00
回复了 b244183 创建的主题 程序员 求推荐蓝牙键盘
HHKB 貌似并不是无线/蓝牙的啊。
当然可以折腾,不过暂时并不想这么办。
2015-06-20 20:07:58 +08:00
回复了 lilydjwg 创建的主题 发音 Tornado 你们怎么读?
Tornado

托你读2333
2015-06-19 12:37:44 +08:00
回复了 b244183 创建的主题 程序员 Mac 下有没什么好用的鼠标侧键映射软件
我用 Controller Mate 配 M$ 的 Sculpt,凑合能用,侧键直接映射到 Mission Control。
免费版的规则数目貌似有限制,不过够用了。不知道对 10.10 和 10.11 兼容如何。
2015-06-19 12:32:09 +08:00
回复了 thinker3 创建的主题 Python python 一时爽?
我的选择是 TypeScript,但是大概和楼主的要求差得远,因为我需要一定的“静态”,但是却并不需要类型推导。

再往下一个梯队的话,Scala,C#,C++ 11 with clang。
2015-06-16 02:50:48 +08:00
回复了 nowcoder 创建的主题 程序员 据说只有 TOP 3%的前端工程师可以在一天内做完这些
这貌似并不能完全算是 “前端” 的内容,感觉大多数都是 JS 的一些知识点,逻辑和简单的算法。貌似有一道涉及到了 DOM。而一些 exactly “前端” 的东西,比如 @otakustay 在 43L 说的,做类似 OJ 的自动评测,有难度。

另外 LeetCode 一段时间前是支持了 JS 的,纯 JS。顺便如果注意了资源使用上限的问题的话,我并不认为纯粹 JS 这种轻量(V8 之类的动静搞得这么大是因为死命往里面加各种优化特技)又和系统底层没啥耦合的东西能把服务器搞出什么问题来。如果直接用 Node 跑那就另说了。
2015-06-14 23:23:45 +08:00
回复了 lux182 创建的主题 程序员 推荐一个 paper 网址 http://arxiv.org/
@mcone 我们老师让我们做出 paper 来先发 arxiv,然后再发会议。原因是 arxiv 发的效率很高,会议可以挑水的发而且回应也算比较快的,可以很快出成果(意思就是丰富简历)。
2015-06-14 23:21:09 +08:00
回复了 MrLiao 创建的主题 程序员 github 上有哪些值得一读的 C/C++源码?
@lsmgeb89 吐槽一下,这货的文档搞得实在太渣,弄得 v8-juice (一个绑定库)的作者在 mailing list 里面撂下一封邮件就走人,还专门写了个 slides 点名批评 v8,说是有名气的开源项目里面文档做的最烂的

Mozilla 那边的 SpiderMonkey 也明确说 API 一段时间内不会稳定下来。大概是因为浏览器大战,浏览器 JS 引擎的首要目标是性能,其他的全靠边站。另外大概也是类似原因,引擎的 JIT 优化到了将近变态的程度,我一时半会不敢往深处看,就看看表面的 API 封装... 另外个人不是很喜欢 Google 的那套 C++ style guide,Google 的 C++ 项目代码看起来都感觉很奇怪。

Lua 和 Python 貌似属于越做越慢,不过 API 和代码还挺干净的。
2015-06-14 23:08:59 +08:00
回复了 redhatping 创建的主题 Python 爬虫技术-- BeautifulSoup 标签选择的一个疑惑
纯路过... 这两天撸前端,Polymer blablabla,看到这个主题第一反应居然是 document.querySelector...

以前 soup 和 pyquery 都用过一点,pyquery 用起来挺顺手,不过我记得貌似有坑,好像是换行处理不对还是什么来着...
2015-06-14 23:05:31 +08:00
回复了 mazingyu 创建的主题 算法 该怎么提高自己的算法能力啊?刷题有意义吗?
@binux 不知您说的是哪种论文呢?我也就需要用的时候看一些机器学习、图像处理和图形方面的,感觉那些“算法”和这个主题的 context 下的“算法”完全是两回事。

@MikeFish 同推荐 Algorithms 4th... 讲的不算深,但是看起来很舒服。
1 ... 113  114  115  116  117  118  119  120  121  122 ... 123  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3515 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 57ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.