社区
C#
帖子详情
《设计模式》书中提到的"C++ don't treat classes as first-class objects"是什么意思?
idiotzeng
2002-09-11 10:12:24
英文影印版120页(PROTOTYPE),中文版79页(原型):
“C++不将类作为一级对象的语言”
“像Smalltalk和Objective C……,类对象已经起到原型一样的作用了”
是什么意思?
还有没有别的语言在这方面和Smalltalk、Objective C一样:treat classes as first-class objects?
...全文
78
4
打赏
收藏
《设计模式》书中提到的"C++ don't treat classes as first-class objects"是什么意思?
英文影印版120页(PROTOTYPE),中文版79页(原型): “C++不将类作为一级对象的语言” “像Smalltalk和Objective C……,类对象已经起到原型一样的作用了” 是什么意思? 还有没有别的语言在这方面和Smalltalk、Objective C一样:treat classes as first-class objects?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
idiotzeng
2002-09-11
打赏
举报
回复
C#把源型视为对象?
qqchen79
2002-09-11
打赏
举报
回复
这里好像机械工业的《设计模式》翻译的很好啊!
C++在运行的时候已经基本没有类型信息了,比如说我给你一个void*,你不可能判断出它到底指向什么对象(RTTI几乎很少使用)。而且,在C++里面新建堆对象的唯一方法是new,new语句需要静态显式指定类型名称:
MyTest* pt = new MyTest(); //pt一定是MyTest对象
这样,就不可能在向客户隐藏类型实现的前提下由客户建立新的对象。所以Prototype这样的pattern在C++里特别有用。
MyTest* CreateNew(MyTest* pt) {
return pt ->Clone(); //pt可能是MyTest,或者它的某个子类
}
而在C#里面,由于对Reflection的支持,Type类实际起到了prototype的作用。只要有一个Type实例,即使对它表示的类型一无所知,你也可以通过Activator.CreateInstance来建立该类的实例,这就是为什么在C#这样的语言中prototype模式没有用武之地。
Type t = ...;
Object o = Activator.CreateInstance(t); //o是什么类型?
yarshray
2002-09-11
打赏
举报
回复
C++不把源型视为对象!
C#!!
lonk
2002-09-11
打赏
举报
回复
还没看到咔咔
This benefit applies primarily to languages like c++ that don't
treat classes as first-class objects...
啊,意思会不会是,在smalltalk里面把类原型也看成对象,而c++里不是?
Google
C++
Style Guide中英对照(二)
转自:http://blog.csdn.net/fz_ywj/article/details/8647162 1
Class
es
类
Class
es
are thefundamental unit of code in
C++
. Naturally, we use them extensively. Thissection lists the main dos and
don
'ts
源于D
es
ign Pattern Explanation with
C++
Implementation的
设计模式
C++
1、单例模式(Singleton Pattern ) 2、抽象工厂模式(Abstract Factory Pattern ) 3、工厂方法模式(Factory Method Pattern ) 4、简单工厂模式(Simple Factory Pattern ) 5、建造者模式(Builder Pattern ) 6、原型模式(Prototype Pattern ) 7、结构模式(Str
C++
惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
C++
惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above) 分类:
C++
2011-06-06 10:04 2166人阅读 评论(2) 收藏 举报
c++
attribut
es
structinterface
class
编译器 意图: 使用派生类作为模板参数特化基类。
Google
C++
风格指南
背景介绍 风格指南的目标
C++
版本 头文件 自包含头文件 #define 防护 包含所需内容 前置声明 在头文件中定义函数 头文件包含顺序与命名规范 作用域 命名空间 内部链接 非成员函数、静态成员函数与全局函数 局部变量 静态与全局变量 关于析构的决策 关于初始化的决策 常见模式 thread_local 变量 类 构造函数中的工作处理 隐式转换 可复制与可移动类型 优势 实现要点 注意事项 规范要求 结构体与类的选择 结构体 vs. 对组与元组 继承 运算符重载 访问控制 声明顺序 函数 输入与输出
《Effective
C++
》读书摘要
来源: http://www.cnblogs.com/fanzhi
don
gyzby/archive/2012/11/18/2775603.html> 最近刚读完侯捷的《Effective
C++
》,相对来说,这本书的内容比较贴近基础,对于刚掌握
C++
基础的人会有不少的提高。不过
书中
还是涉及了不少
C++
的高级特性,阅读起来需要查阅相关的资料。
书中
给出了大量的示例和代码来说明具体规则的原理,我
C#
111,125
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章