原创 C++设计的又一个缺陷——构造函数与析构函数名称不应该用类名收藏

 | 旧一篇: C++设计的一个小缺陷——不必强制类普通成员函数在类体中声明

C++设计的又一个缺陷,是否应该提交给C++标准委员会呢?——构造函数与析构函数名称不应该用类名


如果用类名,那么就是一个信息冗余

class test
{
    test();
    test(int,int,char *);
    test(...);
    ...
}

现在我要更改test为test2,就需要更改四个地方,维护困难。


class test2
{
    test2();
    test2(int,int,char *);
    test2(...);
    ...
}

解决方法:
引入一个关键字_init,做为构造函数的名字,
class test
{
    _init();
    _init(int,int,char *);
    _init(...);
    ...
}
现在要改名为test就只改一个地方就行了。
class test2
{
    _init();
    _init(int,int,char *);
    _init(...);
    ...
}


我的太极语言现在就可以这样的,哈哈

还有析构函数呢?叫个什么名字呢?
close,destroy,~_init,帮我想想吧。
还有_init叫成_begin怎么样?

发表于 @ 2007年09月25日 11:55:00|评论(loading...)|编辑

 | 旧一篇: C++设计的一个小缺陷——不必强制类普通成员函数在类体中声明

评论

#eXile_ 发表于2007-09-25 16:49:11  IP: 218.15.154.*
D语言中的办法:

class test
{
this() {}
this(int) {}

~this() {}
}
#Azureus 发表于2007-09-25 20:44:23  IP: 221.12.171.*
这种细节的东西
约定俗成的而已
跟现实中的语言一样
钻这样的牛角尖没啥意思
#mcsessx 发表于2007-09-26 08:46:02  IP: 61.183.221.*
用_done

原来的turbo pascal的构造和析构函数就分别为
init, done
#yxyhack 发表于2007-09-26 10:04:08  IP: 210.72.197.*
感觉
Tinit();
~Tinit();
这样叫法要好一些吧。
#zaodt 发表于2007-10-13 10:12:22  IP: 60.176.190.*
感觉 D 语言的方法不错,用代词。
#Godsme 发表于2008-06-09 19:11:30  IP: 124.193.198.*
不同的语言在这一点上的处理是不同的,C++/Java的方案只是其中一种而已。萝卜白菜各有所爱嘛
#silverdrag 发表于2008-07-02 20:03:33  IP: 125.70.128.*
一个类的名字能随便修改的吗?
也不称称自己多少斤两就在这里大放厥词要C++改标准,脑残啊
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © universee