由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 弱问一个virtual function的问题
相关主题
一个java class downcast 的问题问一个java inheritance的问题
Is there a way to show if a method overrides a method in its superclass in Javascript一些oop的概念
有关SVN问题征解
有游戏app经验的来说说,这个数据大概靠谱吗?java的一个问题
求教一份给力的Python快速入门教程,谢谢!这是阿三太坏了还是我的要求不合理?
说点技术之外的话题:2份全工是file一份i539表吗?还是两份?(ZZ)
寻part time的工作(system engineer, devops or SRE)再问一个h1b被雷后的转身份问题
Java的method不都是virtual的么?private就不同了?我还有机会回美国工作吗?
相关话题的讨论汇总
话题: class话题: function话题: virtual话题: os话题: c++
进入Programming版参与讨论
1 (共1页)
j*****I
发帖数: 2626
1
derived class里面的non-virtual function code在内存里是单独copy一份呢,还是
reuse base class的?
谢谢
f*******n
发帖数: 12623
2
你是什么意思?你写一个function不会有“两份”的(除了template)。
j*****I
发帖数: 2626
3
我的意思是同一个class的所有objects, function members在内存里是share的。但是
data member那份,各自有一份。
这个superclass和subclass是不是类似? subclass继承的那些non virtual function,
在内存里,实际上是指向superclass的?

【在 f*******n 的大作中提到】
: 你是什么意思?你写一个function不会有“两份”的(除了template)。
d**********x
发帖数: 4083
4
非虚函数是静态绑定的。函数只有一份代码。
本质上你也可以说是“指向”superclass的,但是实际上并没有一个像虚函数表一样的
东西。

【在 j*****I 的大作中提到】
: 我的意思是同一个class的所有objects, function members在内存里是share的。但是
: data member那份,各自有一份。
: 这个superclass和subclass是不是类似? subclass继承的那些non virtual function,
: 在内存里,实际上是指向superclass的?

j*****I
发帖数: 2626
5
OK,就是说所有的non-virtual function call,compile的时候已经指向superclass了?

【在 d**********x 的大作中提到】
: 非虚函数是静态绑定的。函数只有一份代码。
: 本质上你也可以说是“指向”superclass的,但是实际上并没有一个像虚函数表一样的
: 东西。

c*******y
发帖数: 1630
6
不确定的话,用debugger看看好了。或者
#include
class base{
public:
void test(){}
};
class derived: public base{
};
int main(){
printf("%p\n", &base::test);
printf("%p\n", &derived::test);
}

了?

【在 j*****I 的大作中提到】
: OK,就是说所有的non-virtual function call,compile的时候已经指向superclass了?
m*******l
发帖数: 12782
7
this

了?

【在 j*****I 的大作中提到】
: OK,就是说所有的non-virtual function call,compile的时候已经指向superclass了?
f*******n
发帖数: 12623
8
Yes, unless your class also implements the method, in which case it will
point to your class's method.

了?

【在 j*****I 的大作中提到】
: OK,就是说所有的non-virtual function call,compile的时候已经指向superclass了?
j*****I
发帖数: 2626
9
这个this,我相信compiler会帮忙指向base class?!

【在 m*******l 的大作中提到】
: this
:
: 了?

t****t
发帖数: 6806
10
我觉得问题是这样, 你不知道从哪里学了一堆似是而非的概念, 好象有点对, 又不完全
对. 你需要refresh一下class和inheritence的基本概念, 仔细读一下, 不要浏览. 你
可能需要inside c++ object model这样的书.

【在 j*****I 的大作中提到】
: 这个this,我相信compiler会帮忙指向base class?!
相关主题
说点技术之外的话题:2份全工问一个java inheritance的问题
寻part time的工作(system engineer, devops or SRE)一些oop的概念
Java的method不都是virtual的么?private就不同了?问题征解
进入Programming版参与讨论
d**********x
发帖数: 4083
11
同意。不知道如何说起

【在 t****t 的大作中提到】
: 我觉得问题是这样, 你不知道从哪里学了一堆似是而非的概念, 好象有点对, 又不完全
: 对. 你需要refresh一下class和inheritence的基本概念, 仔细读一下, 不要浏览. 你
: 可能需要inside c++ object model这样的书.

c*******y
发帖数: 1630
12
这本对LZ有点太进阶了吧。

【在 t****t 的大作中提到】
: 我觉得问题是这样, 你不知道从哪里学了一堆似是而非的概念, 好象有点对, 又不完全
: 对. 你需要refresh一下class和inheritence的基本概念, 仔细读一下, 不要浏览. 你
: 可能需要inside c++ object model这样的书.

j*****I
发帖数: 2626
13
我是哲学的高度来学习programming的。就像很多network application,多多少少都借
鉴不是这层就是那层的协议。 我,一厢情愿的相信,programming的设计者也借鉴了OS
的一些理念。
比如说,同一个executable的多个processes,共享一个code segment,但是有各自的
data segment. 这一点很像同一个class的不同objects,共享function members,但是有
各自的data members.
不同process之间有protection,是因为address space就不同。这一点是不是很象class
的protection的idea?
如果这两者之间真的有如此的同一性,是不是借鉴OS设计的可以更好帮助理解
programming language的idea? 你说我的那些似是而非的东西,多半都是从这来的。

【在 t****t 的大作中提到】
: 我觉得问题是这样, 你不知道从哪里学了一堆似是而非的概念, 好象有点对, 又不完全
: 对. 你需要refresh一下class和inheritence的基本概念, 仔细读一下, 不要浏览. 你
: 可能需要inside c++ object model这样的书.

Zs
发帖数: 225
14
你...是不是
不是科班出身的啊...

OS
class


【在 j*****I 的大作中提到】
: 我是哲学的高度来学习programming的。就像很多network application,多多少少都借
: 鉴不是这层就是那层的协议。 我,一厢情愿的相信,programming的设计者也借鉴了OS
: 的一些理念。
: 比如说,同一个executable的多个processes,共享一个code segment,但是有各自的
: data segment. 这一点很像同一个class的不同objects,共享function members,但是有
: 各自的data members.
: 不同process之间有protection,是因为address space就不同。这一点是不是很象class
: 的protection的idea?
: 如果这两者之间真的有如此的同一性,是不是借鉴OS设计的可以更好帮助理解
: programming language的idea? 你说我的那些似是而非的东西,多半都是从这来的。

d**********x
发帖数: 4083
15
学哲学的。。

【在 Zs 的大作中提到】
: 你...是不是
: 不是科班出身的啊...
:
: OS
: class
: 。

t****t
发帖数: 6806
16
从高处看本来是没有错的, 但是前提是你要有一个扎实的基础. 比如说, 你的C++学得
很好, 理解很深, 那你学OS的时候可以借鉴C++的思想. 或者反过来, 你自己用C写过一
个OS, 那你学JAVA或者C++的时候可以借鉴OS的思想.
但是你明显根本没有基础, 从高处看是不可能的.

OS
class


【在 j*****I 的大作中提到】
: 我是哲学的高度来学习programming的。就像很多network application,多多少少都借
: 鉴不是这层就是那层的协议。 我,一厢情愿的相信,programming的设计者也借鉴了OS
: 的一些理念。
: 比如说,同一个executable的多个processes,共享一个code segment,但是有各自的
: data segment. 这一点很像同一个class的不同objects,共享function members,但是有
: 各自的data members.
: 不同process之间有protection,是因为address space就不同。这一点是不是很象class
: 的protection的idea?
: 如果这两者之间真的有如此的同一性,是不是借鉴OS设计的可以更好帮助理解
: programming language的idea? 你说我的那些似是而非的东西,多半都是从这来的。

t****t
发帖数: 6806
17
by the way, process之间的protection和C++的class access restriction根本是两回
事, 你完完全全搞错了. 这个我之前讲过, C++的access control和security完全无关.
所以你看, 你学习的方向根本就是不对的.

OS
class


【在 j*****I 的大作中提到】
: 我是哲学的高度来学习programming的。就像很多network application,多多少少都借
: 鉴不是这层就是那层的协议。 我,一厢情愿的相信,programming的设计者也借鉴了OS
: 的一些理念。
: 比如说,同一个executable的多个processes,共享一个code segment,但是有各自的
: data segment. 这一点很像同一个class的不同objects,共享function members,但是有
: 各自的data members.
: 不同process之间有protection,是因为address space就不同。这一点是不是很象class
: 的protection的idea?
: 如果这两者之间真的有如此的同一性,是不是借鉴OS设计的可以更好帮助理解
: programming language的idea? 你说我的那些似是而非的东西,多半都是从这来的。

m*******l
发帖数: 12782
18
哲学同学,
你应该学庖丁接牛
先深,再浅, 再深, 再浅...
所谓先达到见山是山,然后见山不是山,然后见山还是山...

【在 j*****I 的大作中提到】
: 我是哲学的高度来学习programming的。就像很多network application,多多少少都借
: 鉴不是这层就是那层的协议。 我,一厢情愿的相信,programming的设计者也借鉴了OS
: 的一些理念。
: 比如说,同一个executable的多个processes,共享一个code segment,但是有各自的
: data segment. 这一点很像同一个class的不同objects,共享function members,但是有
: 各自的data members.
: 不同process之间有protection,是因为address space就不同。这一点是不是很象class
: 的protection的idea?
: 如果这两者之间真的有如此的同一性,是不是借鉴OS设计的可以更好帮助理解
: programming language的idea? 你说我的那些似是而非的东西,多半都是从这来的。

j*****I
发帖数: 2626
19
扯远了。各位担待吧。

【在 m*******l 的大作中提到】
: 哲学同学,
: 你应该学庖丁接牛
: 先深,再浅, 再深, 再浅...
: 所谓先达到见山是山,然后见山不是山,然后见山还是山...

n******t
发帖数: 4406
20
这和科班有毛关系.

【在 Zs 的大作中提到】
: 你...是不是
: 不是科班出身的啊...
:
: OS
: class
: 。

1 (共1页)
进入Programming版参与讨论
相关主题
我还有机会回美国工作吗?求教一份给力的Python快速入门教程,谢谢!
TSC EB1B timeline + 求祝福说点技术之外的话题:2份全工
哪里有最新eigenfactor寻part time的工作(system engineer, devops or SRE)
NSC EB1A DIY 140 approved pp, 分享PL,index回馈本版(100个包子)Java的method不都是virtual的么?private就不同了?
一个java class downcast 的问题问一个java inheritance的问题
Is there a way to show if a method overrides a method in its superclass in Javascript一些oop的概念
有关SVN问题征解
有游戏app经验的来说说,这个数据大概靠谱吗?java的一个问题
相关话题的讨论汇总
话题: class话题: function话题: virtual话题: os话题: c++