﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-深蓝色的空间-随笔分类-C++</title><link>http://www.cppblog.com/ggggqqqqihc/category/6282.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 08:37:12 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 08:37:12 GMT</pubDate><ttl>60</ttl><item><title>C++课程的作业</title><link>http://www.cppblog.com/ggggqqqqihc/archive/2008/03/04/43668.html</link><dc:creator>Wang Jinbo</dc:creator><author>Wang Jinbo</author><pubDate>Tue, 04 Mar 2008 04:31:00 GMT</pubDate><guid>http://www.cppblog.com/ggggqqqqihc/archive/2008/03/04/43668.html</guid><wfw:comment>http://www.cppblog.com/ggggqqqqihc/comments/43668.html</wfw:comment><comments>http://www.cppblog.com/ggggqqqqihc/archive/2008/03/04/43668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ggggqqqqihc/comments/commentRss/43668.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ggggqqqqihc/services/trackbacks/43668.html</trackback:ping><description><![CDATA[刚才上完C++的课，课上一直在做布置的七道题。整节课手就没离开键盘，总算在下课前做完了。<br>有一道题可是相当让人郁闷。说是定义一个CPoint类描述一个点，再以CPoint为基类派生出CLine类，描述一个线段；再从CLine派生出CRect，描述一个矩形。<br>郁闷呐&#8230;&#8230;稍微有点儿面向对象常识的人都知道这不是继承派生的问题，而是对象组合的问题。难道老师非要让我认为&#8220;矩形是一种线段，线段属于点的一类&#8221;吗？<br>其实C++课的正式名称是&#8220;面向对象程序设计基础&#8221;。我怀疑照这种教法，学生们是否知道应该如何使用继承。一个讲授面向对象基础的课居然出这种题目，实在难以接受。<br><br><img src ="http://www.cppblog.com/ggggqqqqihc/aggbug/43668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ggggqqqqihc/" target="_blank">Wang Jinbo</a> 2008-03-04 12:31 <a href="http://www.cppblog.com/ggggqqqqihc/archive/2008/03/04/43668.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GCC不能正确继承模板类？</title><link>http://www.cppblog.com/ggggqqqqihc/archive/2008/03/02/43548.html</link><dc:creator>Wang Jinbo</dc:creator><author>Wang Jinbo</author><pubDate>Sat, 01 Mar 2008 23:10:00 GMT</pubDate><guid>http://www.cppblog.com/ggggqqqqihc/archive/2008/03/02/43548.html</guid><wfw:comment>http://www.cppblog.com/ggggqqqqihc/comments/43548.html</wfw:comment><comments>http://www.cppblog.com/ggggqqqqihc/archive/2008/03/02/43548.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/ggggqqqqihc/comments/commentRss/43548.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ggggqqqqihc/services/trackbacks/43548.html</trackback:ping><description><![CDATA[GCC编译器似乎不能理解继承自模板类里的数据成员。我还以为是代码的问题，郁闷了半天后，居然在Borland C++ 5.5下编译通过了。节省篇幅，我抽出主要部分。<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">template</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;T</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;A{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">:&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;id;&nbsp;&nbsp;<br>};&nbsp;&nbsp;<br>template</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;T</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;B:&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;A</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">T</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">:&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setid(T&nbsp;i){&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">i;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;test1(){&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">B::test1()&nbsp;ID:&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">id</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br>};</span></div>
B类的id本应该是从A类里继承来的，但用GCC编译会提示说变量id未定义。试着用Borland的编译器就很痛快地过了。我使用的是MinGW的
GCC 3.4，但我在Unix-Center的机器上使用Unix和Linux版本的GCC 4.0编译仍然通不过，但Solaris上的Sun
Studio的C++编译器则没问题。
<br>难道就这么幸运地碰上GCC的Bug了？ <img src ="http://www.cppblog.com/ggggqqqqihc/aggbug/43548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ggggqqqqihc/" target="_blank">Wang Jinbo</a> 2008-03-02 07:10 <a href="http://www.cppblog.com/ggggqqqqihc/archive/2008/03/02/43548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>