免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: dream-girl
打印 上一主题 下一主题

[函数] 构造函数? [复制链接]

论坛徽章:
0
61 [报告]
发表于 2004-12-27 21:56 |只看该作者

构造函数?

原帖由 "converse" 发表:


FT,我自己翻译错了,应该是如果定义了构造函数而没有定义缺省构造函数的话就会出错。


还是错的.

论坛徽章:
0
62 [报告]
发表于 2004-12-27 21:58 |只看该作者

构造函数?

原帖由 "gvim" 发表:
这样的类就不需要构造函数,编译器也不会给你添加。

代码:

class aa
{
    int b;
    int c;
}


这样的类就不需要构造函数,编译器也不会给你添加。

建议楼主先不要在这个问题上专那么深,等你学完了C++基本语法以后,有了一些感性的认识后,在去专研是否一定需要构造函数这样的问题。


这样的代码,根本没必要封装成一个“class”。

C++不仅支持一种编程风格,应该根据需要选择,不一定非要“OO”。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
63 [报告]
发表于 2004-12-27 22:05 |只看该作者

构造函数?

原帖由 "精简指令" 发表:


这样的代码,根本没必要封装成一个“class”。

C++不仅支持一种编程风格,应该根据需要选择,不一定非要“OO”。


我想你搞错了,这个帖子讨论的是“是不是一定需要构造函数”,我举这个例子仅仅是为了说明不一定需要构造函数,而不是说明根据什么编码风格选择什么封装。

论坛徽章:
0
64 [报告]
发表于 2004-12-27 22:06 |只看该作者

构造函数?

然后又把问题扩大化,说了很多,^_^,已经脱离了楼主的话题了,不过挺好.

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
65 [报告]
发表于 2004-12-27 22:07 |只看该作者

构造函数?

原帖由 "精简指令" 发表:


这样的代码,根本没必要封装成一个“class”。

C++不仅支持一种编程风格,应该根据需要选择,不一定非要“OO”。


我想你误会,这篇帖子讨论的是“是不是一定要构造函数”,我举这个例子也仅仅说明不一定必须要构造函数。而不是你说的根据需要选择编码风格的问题。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
66 [报告]
发表于 2004-12-27 22:09 |只看该作者

构造函数?

晕,出现了错误,怎么就发了两遍

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
67 [报告]
发表于 2004-12-27 22:12 |只看该作者

构造函数?

吐血一碗,还是先灌水洗洗继续吐....

论坛徽章:
0
68 [报告]
发表于 2004-12-27 22:15 |只看该作者

构造函数?

西西,终于把这个帖子都看完了。

我是这样感觉。刚开始接触一门新语言时,应该先注重于它所擅长的程序设计方法和风格。写一些程序来解决一些问题。然后再慢慢深入细节。否则容易只见树木,不见森林。

如果一上来就让一个新人从构造函数深入编译器的底层,有点强人所难。
你觉得呢?:)

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
69 [报告]
发表于 2004-12-27 22:16 |只看该作者

构造函数?

然后来继续灌水,吐啊吐啊就习惯了
to:playmud, THEBEST 是高手,你可以向他请教:)

论坛徽章:
0
70 [报告]
发表于 2004-12-27 22:17 |只看该作者

构造函数?

凭着对看过的几本书的回忆谈点看法,这几本书大多没全部看完,特别深度探索C++对象模型这本牛书还很没吃透,所以如果出错了一定请指出
C++ primer和深度探索C++对象模型和ARM的说法都是如果不定义一个构造函数,通常就不会产生构造函数,之所以有“通常”两字,是因为有四种例外情况编译器会自动生成一个构造函数。
C++标准的说法稍微有点改变,它说是生成一个“trivial”的构造函数,也就是说几乎没做什么事。

那四种情况详细见深度探索C++对象模型,是1基类有缺省构造函数2成员对象有缺省构造函数3有虚拟函数表的指针4有虚基类

不过,不管是无缺省构造函数还是trivial构造函数的说法,用一个对象给另一个对象初始化的时候,都是对内存的memberwise copy,所以,如果成员变量中如果有指针和独一无二的数值(见C++primer)或者生成对象时要做初始化以外的动作(见Thinking in C++),都要至少声明一个构造函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP