也不知道是谁把class翻译成“类”的?
要我说,这个class应该译成:老子。
不是古代的那个老子,而是现在父亲有时的自称,还有你发威时有时也这知称呼自己。
我也有看C++的书,我的书桌上一直放着四五本C++入门类的书,可是好几年了,我没有把哪怕哪一本读到一半。而且只有我在停电时我才去看看它们。
这里面自然也有计什么类啦 派生类啦啥的。可是我看过就忘。原因这名词与我们生活没有任何关系,而与生活没有关系的名词,我们人类都称它叫做:抽象。
抽象的东西在大脑里不容易保存,这就如我们在学生时代学过的东西一样,当你踏出校门走入社会开始,那些抽象的名词会一一从你脑海中淡忘,直到五六年后,你会时常怀疑自己真的上过大学?而不是只到中学毕业?
气压还记得吗?这与生活息息相关,你应该记得,常压是一个大气压,知道气压的单位叫帕。可是一个气压是几帕?它是怎么计算出来的?你还记得吗?不记得了吧……
相似的情况有很多很多,如果你不是一直从事于计算数数值的职业,你在走出校门十年后恐怕只会人民币的加减乘除了,多原始的计算公式啊,连小学生都会!说句让你脸红的,现在的中学生能拿题难死你。即便是教师,教英文的不会数学计算,教数学的看不懂英文,这是实情。
不费话了。来说说c++
忽然的想法,让我把C++里的类理解成了祖先,它们可以是你的老子,你的爷爷,甚至是曾祖,因为你就是你曾祖的血脉。
你爷爷具有你的曾祖的特征,而你父亲又具有你爷爷的特征,而你又具有你老子的某些特征。在c++里的表达用冒号来表示关系,如下:
你:父亲:爷爷:曾祖
最新的一代排在最前面,越往后的越早。。。。。嘎。当然了实际上的真正的 c++表达方式并不是这样。
接触这本24小时QT开始的第一课,因为QT是把界面设计与代码分开来的,所以,这本书是相对于较早期的版本的,不过没有关系。因为QT本来就是编程与界面设计分开来的活计。
书上的第一课开始,都是通过代码来生成窗口,生成控件,并控制控件的外观与属性,比如控件的名称,窗口的标题,窗口的位置,大小,控件的位置,大小等。
课程里的#include <qwidget.h>头文件可以用来生成一个窗口。你可以把这个头文件当成一个老子集合,里面包括老子,爷爷,祖父,曾祖,老祖等,而你派生而成的窗口就是它这血肪所繁衍出来的某一后代。
当包含了这个老子后,在代码区就可以通过简称来引用这个头文件里的某个老子,比如:
QWidget a;
这条命令定义了一个名称为a的窗口,也就是从祖先集合里生一个后代出来。
然后你可以给这个后代定义一些属性,比如给它取名字,穿衣服,设置体型,定义性别啥的。。。
以下是我的第一个C++程序,在这里我把Qt理解为:linux下的C++,以后的日记也将如此,因为在win系统里如果装好QT的支持库sdk,那下面的代码完全可以在 VC++上执行。
#include <qapplication.h>
#include <qwidget.h>
#include <qpushbutton.h>
int main(int arga,char **argv)
{
QApplication a(arga,argv);
QWidget mainwindow;
mainwindow.setMinimumSize(200,100);
mainwindow.setMaximumSize(400,200);
mainwindow.setWindowTitle("Hello");
QPushButton btn("Hello World",&mainwindow);
btn.setGeometry (10,10,100,30);
a.setActiveWindow(&mainwindow);
mainwindow.show();
return a.exec();
}
这里的:qpushbutton.h 是所有按钮的老子,所有的按钮都是通过它来产生的。
QT里的main函数有两个参数,用来传递给QApplication老子 所定义的唯一的app儿子,这个儿子只能唯一,所以是独生的。
QWidget mainwindow;
这句是窗口祖先生一个叫mainwindow的后代,
mainwindow.setMinimumSize(200,100); 这句是定义这个窗口的最小尺寸 200为宽度,100为高度,单位为像素
mainwindow.setMaximumSize(400,200); 这个是定义这个窗口的最大尺寸 400为宽度,200为高度,单位为像素
因为最小尺寸与最大尺寸并不相等,所以这个窗口是有最大化按钮的。
mainwindow.setWindowTitle("Hello"); 这句是给这儿子取个名字,名字叫哈罗
QPushButton btn("Hello World",&mainwindow);
这句就是从让按钮老祖生个名字叫做“btn”的后代,匪号叫:“Hello World”,取并让这后代加入mainwidow帮派,让mainwindow统冶它。
btn.setGeometry (10,10,100,30);
这句是给btn分配地盘。从帮派的坐标:10,10 开始,到100,30的地区都归它管。
a.setActiveWindow(&mainwindow);
这个a呢,其实就是QApplication创键的系统进程号,可以当作QApplication只是一个省的老大,而Linux则是咱中国地区的老大,
第一句:
QApplication a(arga,argv);
这句是打电话给中央的老大,本省要开始生产人口了,中央老大同意后,给了两个指示文件(arga,argv)让QApplication照规章计划办事。
a.setActiveWindow(&mainwindow);这然才是正式的激法计划,让mainwindow当省代理人
mainwindow.show();
这解码器开始,mainwindow开始分配各小弟的地盘,然后省计划开始运作,
return a.exec();
这句开始:小弟们手机开机,接收老大的电话信息派遗。
好,这篇日记离上篇生成时间不长。。。。
嘿嘿,今天这说法让我想起了前些日子看到的一篇黑社会版的《出师表》,大家有兴趣也可以找看看。
2006-06-26 菜头