Re: [问题] 物件的定义 .. function为何不是物件?

楼主: KanzakiHAria (神崎・H・アリア)   2018-04-05 13:05:45
首先必须厘清java的term和c++的东西并不完全相同 行为也不同
ex: generic, template, class.....等都是不一样的
OO是C++才有的 如果不讨论C 你找到的叙述我认为很合理
※ 引述《alpho (阿否)》之铭言:
: An object is a region of storage.
: [ Note: A function is not an object, regardless of whether or not it occupies storage in the way that objects do.
: —end note ]
在java之中宣告的class可以直接拿来使用 因为已经实体化
c++的class只是type 需要宣告并且变成变量instance 这个时候物件确实占有一块空间
https://www.quora.com/Is-this-statement-correct-An-object-is-an-instance-to-a-class-If-yes-then-why
太长缩 https://goo.gl/vqpbxg
: 本来整个问题就是"物件的定义",然后有看到 应该是在14草案的3.9.2-3 没记错位置的话,说到:参考、函式和void型态不是物件。
: 参考很明显,void和函式就比较微妙了。
: 为了厘清观念,才在板上发问这样
: 谢谢各位。
同样的道理函式无法实体化 他只是一个symbol 一个进入点
容易让人混淆的是c++有一个container叫做std::function 这是一个class
因为具有operator() 所以instance可以表现得像function
类似的还有lambda也是具有operator()的instance 其type只有compiler才知道
而void没有任何东西 Cardinality就是0
作者: GaliTW (嘎嘎利)   2018-04-05 14:34:00
symbol

Links booklink

Contact Us: admin [ a t ] ucptt.com