[新闻八卦] [转载]主要C++流派,看看你是哪一流
geminiyellow
2009-03-04
流派很多啊,要入门不容易啊。
|
|
frenchmay
2009-09-02
7. Java流:全面使用Java的风格,不能容许任何全局成员,但允许使用STL的集合类,写很多叫Factory的类。
|
|
night_stalker
2009-09-02
不在 namespace 下面的类也是全局成员 ……
|
|
RednaxelaFX
2009-09-02
night_stalker 写道 不在 namespace 下面的类也是全局成员 ……
啊,说起namespace,我一直没弄明白一个只有静态成员的类跟一组用namespace包裹的函数在实际用的时候有多大区别? |
|
night_stalker
2009-09-02
RednaxelaFX 写道 night_stalker 写道 不在 namespace 下面的类也是全局成员 ……
啊,说起namespace,我一直没弄明白一个只有静态成员的类跟一组用namespace包裹的函数在实际用的时候有多大区别? namespace 可以 using,静态成员不能。 B.S. 爷爷也教导我们,namespace 和 static 也是敌我识别系统的参照因子之一。 |
|
RednaxelaFX
2009-09-02
night_stalker 写道 namespace 可以 using,静态成员不能。
B.S. 爷爷也教导我们,namespace 和 static 也是敌我识别系统的参照因子之一。 有道理,可以using…… B.S.爷爷是怎么说敌我识别的,来~~ |
|
night_stalker
2009-09-02
static 成员很尴尬,声明了还要定义,定义的部分还不能写在 h 文件里;
静态成员继承时尤其是模版类的继承行为很难捉摸。namespace 的行为就简单多了,哦不,应该说没行为; 匿名 namespace 可以隐藏变量、函数于无形之中 …… p.忘记 B.S. 爷爷在 the c++ programing language 的第几页教导我们了 …… |
|
RednaxelaFX
2009-09-02
night_stalker 写道 static 成员很尴尬,声明了还要定义,定义的部分还不能写在 h 文件里;
静态成员继承时尤其是模版类的继承行为很难捉摸。namespace 的行为就简单多了,哦不,应该说没行为; 匿名 namespace 可以隐藏变量、函数于无形之中 …… p.忘记 B.S. 爷爷在 the c++ programing language 的第几页教导我们了 …… 咦……? h.h #ifndef H_H #define H_H #include <iostream> struct H { static void Ecchi() { std::cout << "Ecchi!" << std::endl; } }; #endif // ifndef H_H h.cpp #include "h.h" int main() { H::Ecchi(); return 0; } 我没印象看到static不能写在h文件里诶。上面这玩儿编译也通过了 =v= 刚翻了下,static member是在10.2.4,不过貌似还有别的地方说的。回头再看看…… |
|
night_stalker
2009-09-02
那个算 inline 函数了,所以可以 ……
改成这样就容易出事了: #ifndef H_H #define H_H #include <iostream> struct H { static void Ecchi(); }; void H::Ecchi() { std::cout << "Ecchi!" << std::endl; } #endif // ifndef H_H 包含一遍没所谓,如果有两个 cpp 都 include 了这个头文件就会报重复定义的错误。 |
|
RednaxelaFX
2009-09-02
night_stalker 写道 包含一遍没所谓,如果有两个 cpp 都 include 了这个头文件就会报重复定义的错误。
嗯不inline写确实容易出事…… |