比起拉斐尔、达芬奇来我更喜欢波提切利

准备收工回家的时候,随便浏览了一下csdn的blog列表,csdn的blog有一点不是很好,缺少一个webblog的成员列表和聚合。后来看见了羿的blog更新,是一篇欧洲文艺复兴的名画欣赏,有两幅画,一幅是拉斐尔的,一幅是热拉尔的。

http://blog.csdn.net/iyanglian/archive/2004/07/07/36340.aspx

倒是很久没有欣赏这种东西了,很久以前念书的时候有过美术鉴赏,因为油画使我想起以前的一位美术老师来,从他身上我学到不少东西。美术课不是我的爱好所在,从来就很少认真的听课,只是爱翻看那本美术鉴赏。比起拉斐尔、达芬奇来我更喜欢波提切利。波提切利的画几乎是最柔美温和的,他的人物就如同他的《春》一样,让人有一种温醇的感觉。遗憾的是在他那一个时代他根本无法和达芬奇、拉斐尔这样的大师相提并论,在人们当中只是一个画匠罢了,百年之后就突然成为一个大师级别的伟大画家。造化从来都这样弄人,是匠还是师你根本没有办法决定,有时候只能默默的耕耘吧。

现在的时间又是公司断网时间了,没有办法上网找他的画了。

比起Java更喜欢C++的理由之一——语义

08-18

对于长期使用C++的人来说,Java中这样的语义确实叫人一下子难以接受。rnrn/*rn * Main.javarn *rn * Created on 2006年8月17日, 下午8:28rn *rn * To change this template, choose Tools | Template Managerrn * and open the template in the editor.rn */rnrnpackage javaapplication2;rnrn/**rn *rn * @author Zenny Chenrn */rnrnclass Parentrnrn protected int t;rn rn public Parent()rn rn System.out.println("Creating Parent...");rn create();rn rn rn public void create()rn rn System.out.println("Parent created!");rn rn t = 1;rn rnrnrnclass Child extends Parentrnrn private int c;rn rn public void create()rn rn c = 1;rn System.out.println("Child created!");rn rn rn public Child()rn rn System.out.println("Creating Child...");rn create();rn rn rn public int getValue()rn rn return c + t;rn rnrnrnpublic class Main rn rn /** Creates a new instance of Main */rn public Main() rn rn rn /**rn * @param args the command line argumentsrn */rn public static void main(String[] args) rn // TODO code application logic herern rn Child ch = new Child();rn rn System.out.println("The result is: "+ch.getValue());rn rnrnrn从语义学和工程学角度,在Child对象被创建时首先要创建其父类域,然后可以根据父类属性rn来获得创建自身资源的需要。然而Java在处理方法重写这个语义时,执行的是“一刀切”,rn父类域尚未被创建完就开始调用其子类所重写的方法来。这样很可能造成子类的资源也无法rn被初始化(若子类构造方法不去构建)。rn从这点上,C++做得就比较好。创建一个对象就像造房子,一层一层建造。C++中虚函数的多态性rn不会表现在构造函数和析构函数中,而且构造函数和析构函数也不会受到const对象的限制。rn尽管在语义的实现上确实要比Java复杂一点,但符合语义学和工程学。rnrn#include rnrnusing namespace std;rnrnrnclass Parentrnrnpublic:rnrn Parent(void)rn rn cout << "Creating Parent!" << endl;rnrn Create();rn rnrn virtual void Create(void)rn rn cout << "Parent created!" << endl;rn rnrn virtual ~Parent(void)rn rn Destroy();rn rnrn virtual void Destroy(void)rn rn cout << "Parent destroyed!" << endl;rn rnrn;rnrnrnclass Child : public Parentrnrnpublic:rnrn Child(void)rn rn cout << "Creating Child!" << endl;rnrn Create();rn rnrnrn void Create(void)rn rn cout << "Child created!" << endl;rn rnrnrn ~Child(void)rn rn Destroy();rn rnrnrn void Destroy(void)rn rn cout << "Child destroyed!" << endl;rn rn;rnrnrnvoid main(void)rnrn const Parent *p = new Child();rnrn delete p;rn 论坛

没有更多推荐了,返回首页