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