KeyFansClub

首页 » - 特色讨论区 - » 键社茶餐厅 » C++啊~~我的青春啊~~我哭,达人来帮忙看看吧!
『折户伸治』 - 2006/5/16 15:34:00
以下引用kkkklll在2006-5-16 15:21:37的发言:
我的IP呀……而且Proxy设置不能……想用个马甲都不行……

我不是M$员工,只是外包来M$做测试的,或许是做测试级比较低所以见得不全。但是我的确没见到还有人用MFC的了,Dev那边也只是用C++加API,或VC++.Net。几年前的程序当然很多用的啦。

C#用的人比较多,毕竟M$主推这个瓜瓜,VS2005的C# IDE功能也相当强大。呵呵,又给M$作广告了。


MFC某几乎不用,通常command解决一切
因为简单,直观,快,小……
即便硬要gui那么API随便做一个简单的就好了
不喜欢去一层一层的分析类似MFC那些东西,费事又枯燥

感觉Delphi要体贴一些,不过毕竟习惯C++了,也不想改……

顺便说一下,今天我貌似用错马甲了 XD
『折户伸治』 - 2006/5/16 15:39:00
以下引用wdx04在2006-5-15 19:18:33的发言:
不知道楼主想做什么。
这是我猜楼主的意思:

#include "stdafx.h"

#define NONIUS_NEXT  (PosNonius++,Nonius->next)
#define NONIUS_PREV  (PosNonius--,Nonius->prev)
#define NONIUS_HEAD  (PosNonius = 0,head)
#define NONIUS_FOOT  (PosNonius = Lenlist,foot)
#define NONIUS_NULL  (PosNonius = 0,NULL)

typedef unsigned long ulong;

struct Node
{
    ulong value;
    Node *next,*prev;
}*head,*foot;

class TLK
{
private:
    Node *Nonius;
    ulong PosNonius;

    void glideNonius(ulong position)
    {
        if(position>PosNonius)
        {
            while(position>PosNonius)
                Nonius=NONIUS_NEXT;
        }
        else if(PosNonius>position)
        {
            while(PosNonius>position)
                Nonius=NONIUS_PREV;
        }
    }

public:
    TLK()
    {
        Nonius=head;
        PosNonius=0;
    }

    ulong LKgetValue(ulong position)
    {
        glideNonius(position);
        return Nonius->value;
    }

    void Print() const
    {
        printf("PosNonius=%d\n",PosNonius);
    }

    void IsNoniusEquals(Node *pnode) const
    {
        if(pnode==Nonius)
            printf("Yes\n");
        else
            printf("No\n");
    }

};

class TTR : private TLK
{
public:
    TTR()
    {
    }

    ulong TRgetChild(ulong ramusPos)
    {
        return LKgetValue(ramusPos);
    }

    void Print() const
    {
        TLK::Print();
    }

    void IsNoniusEquals(Node *pnode) const
    {
        TLK::IsNoniusEquals(pnode);
    }

};

int main(int argc, char* argv[])
{
    Node testNodes[10];
    head=testNodes;
    foot=testNodes+9;
    for(int i=0;i<9;i++)
    {
        testNodes.next=testNodes+i+1;
        testNodes[i+1].prev=testNodes+i;
        testNodes.value=i;
    }
    testNodes[9].value=9;
    TTR ttr;
    printf("%d\n",ttr.TRgetChild(3));
    ttr.Print();
    ttr.IsNoniusEquals(testNodes+3);
    return 0;
}

执行结果是:
3
PosNonius=3
Yes
没有错误。


感觉
基本有阁下说的这个意思,虽然表述不一样
通过调试了 XD

啊啊,看来问题出在RP上了~~

~~~~~~
无所谓了
反正决定重写了~—v—
LOVEHINA-AVC - 2006/5/16 15:50:00
以下引用kkkklll在2006-5-16 15:21:37的发言:
我的IP呀……而且Proxy设置不能……想用个马甲都不行……

我不是M$员工,只是外包来M$做测试的,或许是做测试级比较低所以见得不全。但是我的确没见到还有人用MFC的了,Dev那边也只是用C++加API,或VC++.Net。几年前的程序当然很多用的啦。

C#用的人比较多,毕竟M$主推这个瓜瓜,VS2005的C# IDE功能也相当强大。呵呵,又给M$作广告了。


C#的类库不比MFC、VCL简单多少……高一学的C#,除了语法和OOP概念外其它都忘干净了囧rz

另:这里哪位做NDIS比较有经验的,可否指点一下,小弟不知道要买哪本书合适,电子书又找不到好的=_=|||
wdx04 - 2006/5/16 18:00:00
关于MFC,引用下某人的一段话:“在MFC被设计出来初期,那时的C++编译器还具有很多的限制,并且那时主要的平台还只是16位的Windows。不幸的是,由于MFC被设计成为一个框架,使得我们很难利用新编译器中那些更好的C++特性来改进它,也很难将Windows中的很多新特性添加到MFC中。我不喜欢MFC的地方是它高度依赖DLL的特性——因为它将导致许多兼容性方面的问题;还有就是MFC的整个框架设计——它在应用程序的设计中限定了太多东西。”我本人最恶MFC的一点就是它限定了必须使用Doc/View架构。现在Windows下可用的GUI toolkit当中WTL是最好的了,我现在正在用Python语言实现一个WTL for Python,至于M$的Managed C++,C++/CLI,C#之类,一概无视。
kkkklll - 2006/5/16 19:19:00
以下引用LOVEHINA-AVC在2006-5-16 15:50:54的发言:


C#的类库不比MFC、VCL简单多少……高一学的C#,除了语法和OOP概念外其它都忘干净了囧rz



个人认为,C#的最大好处就是简洁,与人类的思维更相似。C#的函数,只要大概知道它在哪,在列表上大概翻一下就找到了,因为光看函数名就知道这个东西大概是做什么的,鼠标放在函数上就可以看到更详细的信息,而参数名们都有其特定的意义,表示十分直接。基本上看到一个函数就知道它是干什么的了。看到一个类,打一个.就知道它能实现什么功能了。

所以,只要会语法,会OOP概念,就可以写了。呵呵。

C#不用背函数,是那些像我一样的懒人们的好工具呀,挖沙沙。人类果然是为了更懒而在不断地奋斗着呀。[STRIKE]这便是变猪的真谛了。[/STRIKE]
Miliardo - 2006/5/16 19:47:00
C#也好……Java也好……
其本质是牺牲用户时间节省程序员时间……
其思想的根本就是“瑞士军刀”理念和对于计算机会越来越快直到可以无视绑定平台带来的损失的“信念”……

所以我还是坚持C/C++……
Prz - 2006/5/16 20:25:00
以下引用LOVEHINA-AVC在2006-5-16 15:50:54的发言:

另:这里哪位做NDIS比较有经验的,可否指点一下,小弟不知道要买哪本书合适,电子书又找不到好的=_=|||


正在做NIDS..... Prz
LOVEHINA-AVC - 2006/5/16 22:00:00
MISHA正在做NDIS??
我记得你好像说过你不做驱动的耶……
Prz - 2006/5/17 0:32:00
以下引用LOVEHINA-AVC在2006-5-16 22:00:29的发言:
MISHA正在做NDIS??
我记得你好像说过你不做驱动的耶……



NIDS <> NDIS
粘土火星 - 2006/5/17 0:57:00
以下引用wdx04在2006-5-16 18:00:07的发言:
关于MFC,引用下某人的一段话:“在MFC被设计出来初期,那时的C++编译器还具有很多的限制,并且那时主要的平台还只是16位的Windows。不幸的是,由于MFC被设计成为一个框架,使得我们很难利用新编译器中那些更好的C++特性来改进它,也很难将Windows中的很多新特性添加到MFC中。我不喜欢MFC的地方是它高度依赖DLL的特性——因为它将导致许多兼容性方面的问题;还有就是MFC的整个框架设计——它在应用程序的设计中限定了太多东西。”我本人最恶MFC的一点就是它限定了必须使用Doc/View架构。现在Windows下可用的GUI toolkit当中WTL是最好的了,我现在正在用Python语言实现一个WTL for Python,至于M$的Managed C++,C++/CLI,C#之类,一概无视。


=v=其实这段话之前不是还有一句嘛赞MFC的|||“我认为MFC是一个了不起的框架库。”

关于C#和C++之间的关系,这个人也有说到嘛~~~
我认为那些新的编程语言(如Java,C#,以及VB.NET)都是针对以下两个主要的问题而开发出来的——简化软件的开发过程以及对于Internet应用程序开发提供更好的的支持。简化软件的开发过程使得更多的开发者可以写出更多更好的应用程序并减少完成开发项目所需要的时间。而支持Internet的开发,对于这个Internet越来越深入到我们的日常生活中的时代来说,毫无疑问是一件非常重要的事情。

我认为C++会继续作为一门重要的编程语言发挥作用,尤其是对那些独立软件开发商和那些系统级开发来说更是如此。从另一方面来说,我相信.NET将会在不久以后成为另外一个非常重要的开发平台。对于未来来说,.NET拥有成为主流编程平台的潜力,但我们必须认识到,这样的过渡阶段肯定要持续一段时间。

我建议那些决心以后只做Internet相关开发的人可以直接去学习C#或者VB.NET,同时学习.NET平台。而那些更多地了解Windows平台以及它所提供的服务方面知识的人,当然就必须需要更多地了解有关Win32 API以及那些支持Windows编程的库相关的知识。


至于语言、框架库好不好的问题,我觉得还是要看看适不适合需求这个标准衡量,当然需求本身也是个很抽象的东西--__--b

楼上有人说CLR或者JVM节省程序员的时间的观点也得到了印证,但是至于是否浪费了用户的时间这点很难讲,不知道有没有统计C#和C++相比损失的性能和节约时间的比率之类的东西。面向开发的层面不一样,需求不一样,擅长处理的领域也不同,可能游戏里面对性能要求更苛刻一些,但我相信通常情况下软件交付时间越短越能赢得更多的客户(爆),其实程序员的时间一定程度上也算作客户的时间嘛。

当然还期待各位强者继续衡量下,某还是边看边学|||||||
LOVEHINA-AVC - 2006/5/17 1:28:00
以下引用Prz在2006-5-17 0:32:05的发言:



NIDS <> NDIS


欺负我眼拙- -
LOVEHINA-AVC - 2006/5/17 1:43:00
以下引用粘土火星在2006-5-17 0:57:58的发言:


至于语言、框架库好不好的问题,我觉得还是要看看适不适合需求这个标准衡量,当然需求本身也是个很抽象的东西--__--b

楼上有人说CLR或者JVM节省程序员的时间的观点也得到了印证,但是至于是否浪费了用户的时间这点很难讲,不知道有没有统计C#和C++相比损失的性能和节约时间的比率之类的东西。面向开发的层面不一样,需求不一样,擅长处理的领域也不同,可能游戏里面对性能要求更苛刻一些,但我相信通常情况下软件交付时间越短越能赢得更多的客户(爆),其实程序员的时间一定程度上也算作客户的时间嘛。

当然还期待各位强者继续衡量下,某还是边看边学|||||||


排除语言复杂性的话C#跟C++之间没有多少可以比较的地方吧,本来JAVA、.NET就不适合做WIN32 DESKTOP APP,它们是面向客户应用的。这些中间语言连内嵌汇编都办不到,有谁会拿它们去开发游戏呢?
zhangmdk - 2006/5/17 2:19:00
-v- 真期待.NET的游戏框架……那会是什么样子啊………………不过看到ATI的CCC程式……就感到很囧了……
LOVEHINA-AVC - 2006/5/17 2:20:00
诡异啊……楼上这个时候怎么还没断网-v-
Rinrin - 2006/5/17 7:02:00
以下引用LOVEHINA-AVC在2006-5-17 1:43:36的发言:


排除语言复杂性的话C#跟C++之间没有多少可以比较的地方吧,本来JAVA、.NET就不适合做WIN32 DESKTOP APP,它们是面向客户应用的。这些中间语言连内嵌汇编都办不到,有谁会拿它们去开发游戏呢?

QUAKE II .NET
呵呵
还有啊
Managed DirectX差不多了
不知道咋样
kkkklll - 2006/5/17 13:38:00
C# 是有 unsafe 选项的,开了就可以加指针什么的了,而且也可以调用API,不过有些orz,因为定义有些奇怪,可能会很不习惯。

还有就是 C#、Native C++和 VB 什么的都是可以相互调用的,用 dll 或 Com。并且,在IDE 里面是支持这种转来转去的调用的调试的,就是说本来运行 C#代码,可以StepInto 到 C++ 里面去。有时看到 C++ 和 C# 的 几个不同语言的 Project 在同一个 Solution 里的确很orz。我至今也不会,所以不是很清楚。呵呵。不过测试的时候看起来挺方便的。

一般程序,大量时间都是被废在很小的一个小块里的,这便是瓶颈呀,所以把这块用各种方法优化了不就行了。比如调用C++什么的。而且C#的速度并不很明显地比C++慢,至少我觉得如此。除了一开始启动要初始化,还有那些 Windows控件 。呵呵。真不知道它怎么把那些Windows控件弄得这么慢的……还有VS2005 对机器要求也不低……

对于浪费用户时间还有一点,就是 C++ 明显 Bug 多些,这些应该也该算大大浪费时间吧。越是复杂的系统,这个情况越明显,呵呵。
粘土火星 - 2006/5/17 14:16:00
以下引用LOVEHINA-AVC在2006-5-17 1:43:36的发言:


排除语言复杂性的话C#跟C++之间没有多少可以比较的地方吧,本来JAVA、.NET就不适合做WIN32 DESKTOP APP,它们是面向客户应用的。这些中间语言连内嵌汇编都办不到,有谁会拿它们去开发游戏呢?


这个和某那个贴不矛盾啊~,我只是说用C#未必就是浪费用户时间,而在游戏这种场合可能对性能要求更苛刻自然就应该用C++的,至于比较的问题……这帖子种种用这个不用那个之类……给某的印象好像就是在互相比-_-bb

其实谁能说说C#内嵌MSIL怎么弄=  =bbb
LOVEHINA-AVC - 2006/5/17 16:58:00
以下引用kkkklll在2006-5-17 13:38:25的发言:
C# 是有 unsafe 选项的,开了就可以加指针什么的了,而且也可以调用API,不过有些orz,因为定义有些奇怪,可能会很不习惯。

还有就是 C#、Native C++和 VB 什么的都是可以相互调用的,用 dll 或 Com。并且,在IDE 里面是支持这种转来转去的调用的调试的,就是说本来运行 C#代码,可以StepInto 到 C++ 里面去。有时看到 C++ 和 C# 的 几个不同语言的 Project 在同一个 Solution 里的确很orz。我至今也不会,所以不是很清楚。呵呵。不过测试的时候看起来挺方便的。

一般程序,大量时间都是被废在很小的一个小块里的,这便是瓶颈呀,所以把这块用各种方法优化了不就行了。比如调用C++什么的。而且C#的速度并不很明显地比C++慢,至少我觉得如此。除了一开始启动要初始化,还有那些 Windows控件 。呵呵。真不知道它怎么把那些Windows控件弄得这么慢的……还有VS2005 对机器要求也不低……

对于浪费用户时间还有一点,就是 C++ 明显 Bug 多些,这些应该也该算大大浪费时间吧。越是复杂的系统,这个情况越明显,呵呵。


呵呵,我觉得你说得不是很规范,相互调用是可以的,但你必须额外的安装一些RUNTIME,而不是基于什么文件格式或接口标准。至于C++ BUG多这类说法,就要看你用的是哪个厂家出的编译器了。M$在C#中采用了JIT技术,使它在局部范围内以本地代码的方式执行,所以你不觉得C#要比C++慢多少。但是我们都明白,一般的客户或桌面应用是不会有性能指标的,C#存在很大的局限性,不只在指针方面,它的CLR也不能对WIN32API、Managed DirectX这些做很充分的封装(为了平台无关性)。拿我们平时最常接触的多媒体、游戏、数据管理、底层控制等应用来说,几条CPU指令就可能造成速度上的巨大差异,而且这种情况遍布整个程序,而不仅仅是在某处的一小段代码上体现——数学运算越多,C#的劣势就越明显。用C#开发程序其实也不会比C++花的时间少,因为C#的代码量(含类库调用)相对于C++而言还要多,只是C++对程序员的要求更高一些罢了。
wdx04 - 2006/5/17 18:04:00
以下引用kkkklll在2006-5-16 19:19:17的发言:
个人认为,C#的最大好处就是简洁,与人类的思维更相似。C#的函数,只要大概知道它在哪,在列表上大概翻一下就找到了,因为光看函数名就知道这个东西大概是做什么的,鼠标放在函数上就可以看到更详细的信息,而参数名们都有其特定的意义,表示十分直接。基本上看到一个函数就知道它是干什么的了。看到一个类,打一个.就知道它能实现什么功能了。

所以,只要会语法,会OOP概念,就可以写了。呵呵。

C#不用背函数,是那些像我一样的懒人们的好工具呀,挖沙沙。人类果然是为了更懒而在不断地奋斗着呀。[STRIKE]这便是变猪的真谛了。[/STRIKE]

这还是在给M$的IDE作广告吧。您在IDE里写C++程序,不是一样会有提示和自动完成功能么?难道说C++ Library的类名或者函数名就是比C#的拗口?

以下引用粘土火星在2006-5-17 0:57:58的发言:
=v=其实这段话之前不是还有一句嘛赞MFC的|||“我认为MFC是一个了不起的框架库。”

关于C#和C++之间的关系,这个人也有说到嘛~~~

至于语言、框架库好不好的问题,我觉得还是要看看适不适合需求这个标准衡量,当然需求本身也是个很抽象的东西--__--b

楼上有人说CLR或者JVM节省程序员的时间的观点也得到了印证,但是至于是否浪费了用户的时间这点很难讲,不知道有没有统计C#和C++相比损失的性能和节约时间的比率之类的东西。面向开发的层面不一样,需求不一样,擅长处理的领域也不同,可能游戏里面对性能要求更苛刻一些,但我相信通常情况下软件交付时间越短越能赢得更多的客户(爆),其实程序员的时间一定程度上也算作客户的时间嘛。


他前后说了什么没关系,只要MFC的这些缺点符合事实就行了,人家毕竟是M$的员工,不可能指望他给自己公司拆台吧。实际上,“C++的开发效率比C#或Java低”这种看法本身就是错误的。C++只是语法复杂,学/用的起点高,但是只要掌握了,就会发现C++的许多类库(STL,boost,ATL,WTL,DTL等)用起来比Java或C#的对应物还要顺手,是真正的“简洁+高效”。换句话说,C++是一门难学易用的语言。从这个意义上来说,C#或Java节省的是软件公司培训员工的费用,而不是程序员的时间。
粘土火星 - 2006/5/17 19:26:00
说起来培训员工算不算进开发效率捏(爆)

不过毕竟人人都不是C++大师……如果有这么个公司……无论什么语言写程序都飞快吧……
kkkklll - 2006/5/17 19:42:00
以下引用wdx04在2006-5-17 18:04:31的发言:

这还是在给M$的IDE作广告吧。您在IDE里写C++程序,不是一样会有提示和自动完成功能么?难道说C++ Library的类名或者函数名就是比C#的拗口?


我也怀疑M$为了提高C#的人气,有意打压 C++,因为VC++2005 的确比VC#2005 不方便不少。比如:C++函数开头按括号可以显示调用信息,但是按一个End键信息就没了,而且不能从写到一半的参数中间看。
C#里面可以用 Ctrl+ED 自动排版,结果 C++里硬要你先选一段,然后才能用 Ctrl+EF 排列选择部分,而且速度也慢得多(不过也可能是因为这个)……
而且,C++没有 Intellisence ,就这一点就太orz了。习惯了方便,改不回来了……呵呵。毕竟集成在IDE里面的和外挂还是差别很大的。我曾经用过数小时只为了改变量名……用了 Intellisence ,一会就OK了。

不过,我认为学C#前一定要把C++学好,因为C++毕竟是基础呀,学好了事半功倍。

那些类库(STL,boost,ATL,WTL,DTL等),我实在是不了解,也不想去了解,因为觉得现在的已经够用了。毕竟我的方向不是系统底层,而是算法逻辑什么的,呵呵。不同的方向,用不同的语言也很正常嘛。


以下引用LOVEHINA-AVC在2006-5-17 16:58:29的发言:

呵呵,我觉得你说得不是很规范,相互调用是可以的,但你必须额外的安装一些RUNTIME,而不是基于什么文件格式或接口标准。至于C++ BUG多这类说法,就要看你用的是哪个厂家出的编译器了。


在Windows 下,用不用什么RUNTIME我不知道,不过装了VS2005。开一个 Native CPP 的 Project,加一个 COM 接口,再开一个 C# Project 在同一个 Solution 下,的确可以用C#调用C++。只是我现在还不太懂……呵呵。

我的BUG 多的意思是:C++里面什么类型都可以互相换,if()里面加什么都可以通过编译,if(函数名), if(i=1)( if(i==1) )这种错误也很容易发生(结果很多地方都统一写成if(1==i)了,呵呵),而且每个初始的内存都要自己多花一步去释放,弄不好就变成内存泄露了……
觉得,既然有简单的,还去用复杂的做什么呢。当然,很多比较底层的东西就不能用C#了。

其实,我的对于程序费时比大多数激进的人更激进,我认为,0.1% 的代码费了99% 的时间。或许是做数值计算太多了吧……呵呵。

我其实一年前才接触到 C# 的,呵呵。现在想起来,转到这个 C# 上正确的……呵呵。(其实是要用了,没办法……呵呵)

就当我是给M$做广告吧……挖沙沙。
LOVEHINA-AVC - 2006/5/17 19:52:00
写程序从来不用IDE,UE32+MASM的效率最高,哇咔咔XD(请无视我的怪癖)
cheong00 - 2006/5/17 20:19:00
以下引用kkkklll在2006-5-17 19:42:32的发言:
我也怀疑M$为了提高C#的人气,有意打压 C++,因为VC++2005 的确比VC#2005 不方便不少。比如:C++函数开头按括号可以显示调用信息,但是按一个End键信息就没了,而且不能从写到一半的参数中间看。

其實這樣說的話, M$為了推VB.NET, VB.NET的功能也比VC#強不少啊. (雖然好像也因為這樣, VS2005中VB.NET的IDE支援裡的Bug比VC#多了不少... 算不算打壓也還是未知之數... :P )
粘土火星 - 2006/5/17 20:40:00
orz 2k5 VB又多了什么东东= =?
cheong00 - 2006/5/17 21:41:00
Refactor!是其中一項, 只有VB.NET支援... 看示範時看得口水都流出來了. :D~~~~~~~~~~~~
http://msdn.microsoft.com/vbasic/downloads/tools/refactor/

應該還有兩項, 但不記得了... (反正我不常用VB.NET, 也就沒留意了)
Prz - 2006/5/17 23:58:00
赫赫,记得我的一位老师曾经说过:

Typed language is for weak minds.
(有类型的语言是给思维能力弱的人设计的.)

总觉得这句话当中很有一些真理的说... (虽然我并不完全赞同... -v-)
LOVEHINA-AVC - 2006/5/18 0:44:00
ASM是无类型的,BASIC系的也几乎都是-v-

ASM最美……
zhangmdk - 2006/5/18 1:01:00
楼上这位不是人——摘自MDK定律第157条
粘土火星 - 2006/5/18 8:05:00
以下引用Prz在2006-5-17 23:58:50的发言:
赫赫,记得我的一位老师曾经说过:

Typed language is for weak minds.
(有类型的语言是给思维能力弱的人设计的.)

总觉得这句话当中很有一些真理的说... (虽然我并不完全赞同... -v-)


还有这老师也不是人||||||||

PS:刚刚简单看了一下DX SDK中带的演示
没想到Managed DirectX和原生C++效率差别这么小……
两个程序基本稳定在150fps左右,Managed DirectX浮动范围大一些,当然我本本机器配置不高(AMD Turion MT-28,ATI X200M 分了32M显存orz),可能差距拉不开。

差距比较大的部分在于内存占用……托管代码明显不如C++ =v=bbb
kkkklll - 2006/5/18 11:23:00
以下引用cheong00在2006-5-17 21:41:38的发言:
Refactor!是其中一項, 只有VB.NET支援... 看示範時看得口水都流出來了. :D~~~~~~~~~~~~
http://msdn.microsoft.com/vbasic/downloads/tools/refactor/

應該還有兩項, 但不記得了... (反正我不常用VB.NET, 也就沒留意了)


不好意思,我说的那个 Intellisence 就是 Refactor,都是原来 Beta2 的时候菜单上叫Intellisence 害的。

Refactor 在 VS 2005 C# 里面就有,但是VB 和其他的都没有,所以要另外写一个附加包,还要钱……

不过这个新 Refactor 是比 C# 的Refactor功能多一些,比如把一个Hardcode 的东西弄成全局变量。看起来不错的说说,因为我经常做这种事。C# 现有的是: rename, extract method, reorder parameters, remove parameters, encapsulate Field, Extract Interface, Promote local Variable to parameter. 不过我一般只用前面3个……呵呵。
123
查看完整版本: C++啊~~我的青春啊~~我哭,达人来帮忙看看吧!