Soumettre la recherche
Mettre en ligne
xwz 2010-10-31
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
670 vues
C
carlxwz
Suivre
编程那些事
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger maintenant
Recommandé
C++模板与泛型编程
C++模板与泛型编程
deer hope
從 C 語言的角度入門 php
從 C 語言的角度入門 php
Dylandy Chang
認識 C++11 新標準及使用 AMP 函式庫作平行運算
認識 C++11 新標準及使用 AMP 函式庫作平行運算
建興 王
Introduction to C++ over CLI
Introduction to C++ over CLI
建興 王
Ch 8
Ch 8
BMG2011
Python学习笔记
Python学习笔记
Lingfei Kong
第1章概述
第1章概述
summerfeng
Intro to C++ Basic
Intro to C++ Basic
Shih Chi Lin
Recommandé
C++模板与泛型编程
C++模板与泛型编程
deer hope
從 C 語言的角度入門 php
從 C 語言的角度入門 php
Dylandy Chang
認識 C++11 新標準及使用 AMP 函式庫作平行運算
認識 C++11 新標準及使用 AMP 函式庫作平行運算
建興 王
Introduction to C++ over CLI
Introduction to C++ over CLI
建興 王
Ch 8
Ch 8
BMG2011
Python学习笔记
Python学习笔记
Lingfei Kong
第1章概述
第1章概述
summerfeng
Intro to C++ Basic
Intro to C++ Basic
Shih Chi Lin
第4章函数
第4章函数
summerfeng
Objc under the_hood_2013
Objc under the_hood_2013
Michael Pan
OOP in C - Virtual Function (Chinese Version)
OOP in C - Virtual Function (Chinese Version)
Kai-Feng Chou
1 C入門教學
1 C入門教學
Sita Liu
第六章 函數與巨集
第六章 函數與巨集
shademoon
C python 原始碼解析 投影片
C python 原始碼解析 投影片
kao kuo-tung
竞赛中C++语言拾遗
竞赛中C++语言拾遗
乐群 陈
C++11 smart pointers
C++11 smart pointers
chchwy Chang
Gobject - Inherit (Chinese)
Gobject - Inherit (Chinese)
Kai-Feng Chou
ajax_onlinemad
ajax_onlinemad
Kitor23
C語言標準輸出入函式
C語言標準輸出入函式
吳錫修 (ShyiShiou Wu)
Slide08 807007748
Slide08 807007748
Shiyao Ma
Ch6 函式
Ch6 函式
requiemformemories
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
dennis zhuang
C語言結構與串列
C語言結構與串列
吳錫修 (ShyiShiou Wu)
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
Li-Wei Lu
Python 迴圈作業
Python 迴圈作業
吳錫修 (ShyiShiou Wu)
17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)
何青青 Clare
Reply
Reply
海波 穆
XXXIX Congreso Odontológico Ecuatoriano 2010
XXXIX Congreso Odontológico Ecuatoriano 2010
Federación Odontológica Ecuatoriana
Xúpiter.
Xúpiter.
MayitaMaya
Kanda Hill's Supporting Docs - Pictures
Kanda Hill's Supporting Docs - Pictures
mdubois2
Contenu connexe
Tendances
第4章函数
第4章函数
summerfeng
Objc under the_hood_2013
Objc under the_hood_2013
Michael Pan
OOP in C - Virtual Function (Chinese Version)
OOP in C - Virtual Function (Chinese Version)
Kai-Feng Chou
1 C入門教學
1 C入門教學
Sita Liu
第六章 函數與巨集
第六章 函數與巨集
shademoon
C python 原始碼解析 投影片
C python 原始碼解析 投影片
kao kuo-tung
竞赛中C++语言拾遗
竞赛中C++语言拾遗
乐群 陈
C++11 smart pointers
C++11 smart pointers
chchwy Chang
Gobject - Inherit (Chinese)
Gobject - Inherit (Chinese)
Kai-Feng Chou
ajax_onlinemad
ajax_onlinemad
Kitor23
C語言標準輸出入函式
C語言標準輸出入函式
吳錫修 (ShyiShiou Wu)
Slide08 807007748
Slide08 807007748
Shiyao Ma
Ch6 函式
Ch6 函式
requiemformemories
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
dennis zhuang
C語言結構與串列
C語言結構與串列
吳錫修 (ShyiShiou Wu)
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
Li-Wei Lu
Python 迴圈作業
Python 迴圈作業
吳錫修 (ShyiShiou Wu)
17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)
何青青 Clare
Reply
Reply
海波 穆
Tendances
(19)
第4章函数
第4章函数
Objc under the_hood_2013
Objc under the_hood_2013
OOP in C - Virtual Function (Chinese Version)
OOP in C - Virtual Function (Chinese Version)
1 C入門教學
1 C入門教學
第六章 函數與巨集
第六章 函數與巨集
C python 原始碼解析 投影片
C python 原始碼解析 投影片
竞赛中C++语言拾遗
竞赛中C++语言拾遗
C++11 smart pointers
C++11 smart pointers
Gobject - Inherit (Chinese)
Gobject - Inherit (Chinese)
ajax_onlinemad
ajax_onlinemad
C語言標準輸出入函式
C語言標準輸出入函式
Slide08 807007748
Slide08 807007748
Ch6 函式
Ch6 函式
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
C語言結構與串列
C語言結構與串列
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
Python 迴圈作業
Python 迴圈作業
17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)
Reply
Reply
En vedette
XXXIX Congreso Odontológico Ecuatoriano 2010
XXXIX Congreso Odontológico Ecuatoriano 2010
Federación Odontológica Ecuatoriana
Xúpiter.
Xúpiter.
MayitaMaya
Kanda Hill's Supporting Docs - Pictures
Kanda Hill's Supporting Docs - Pictures
mdubois2
Xsolla Offers
Xsolla Offers
xsollacom
XXOX - ppt
XXOX - ppt
RijnWaalpad
Xtreme Support d Infor
Xtreme Support d Infor
Eric Bossard
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
FrescatiStory
Xxvii cursos d'estiu, oreto doménech, materials per a l'alumnat
Xxvii cursos d'estiu, oreto doménech, materials per a l'alumnat
Oreto Masià
искусство и литература Xvii – xviii вв
искусство и литература Xvii – xviii вв
Proznanie.ru
xyzmo@Mobilkom Austria
xyzmo@Mobilkom Austria
Namirial GmbH
X@T - UGT
X@T - UGT
trinitrougt
XVII Premios "Pico Peñamellera"
XVII Premios "Pico Peñamellera"
picopenamellera
θαύματα μηχανικής XXI αιώνα
θαύματα μηχανικής XXI αιώνα
Fotini
XYZ – As Media Coursework Evaluation Final
XYZ – As Media Coursework Evaluation Final
Lorna Wooldridge
xunittestpatternchapter15
xunittestpatternchapter15
SH Park
Xua2009 (autoguardado)
Xua2009 (autoguardado)
Joel Perea
Xvii Islahat
Xvii Islahat
BigBoss
X Milla Internacional femenina. Gijón 2008
X Milla Internacional femenina. Gijón 2008
F. Ovies
XV Oleada Observatorio Red.es
XV Oleada Observatorio Red.es
carlaF1
Xsolla PayStation
Xsolla PayStation
xsollacom
En vedette
(20)
XXXIX Congreso Odontológico Ecuatoriano 2010
XXXIX Congreso Odontológico Ecuatoriano 2010
Xúpiter.
Xúpiter.
Kanda Hill's Supporting Docs - Pictures
Kanda Hill's Supporting Docs - Pictures
Xsolla Offers
Xsolla Offers
XXOX - ppt
XXOX - ppt
Xtreme Support d Infor
Xtreme Support d Infor
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
Xxvii cursos d'estiu, oreto doménech, materials per a l'alumnat
Xxvii cursos d'estiu, oreto doménech, materials per a l'alumnat
искусство и литература Xvii – xviii вв
искусство и литература Xvii – xviii вв
xyzmo@Mobilkom Austria
xyzmo@Mobilkom Austria
X@T - UGT
X@T - UGT
XVII Premios "Pico Peñamellera"
XVII Premios "Pico Peñamellera"
θαύματα μηχανικής XXI αιώνα
θαύματα μηχανικής XXI αιώνα
XYZ – As Media Coursework Evaluation Final
XYZ – As Media Coursework Evaluation Final
xunittestpatternchapter15
xunittestpatternchapter15
Xua2009 (autoguardado)
Xua2009 (autoguardado)
Xvii Islahat
Xvii Islahat
X Milla Internacional femenina. Gijón 2008
X Milla Internacional femenina. Gijón 2008
XV Oleada Observatorio Red.es
XV Oleada Observatorio Red.es
Xsolla PayStation
Xsolla PayStation
Similaire à xwz 2010-10-31
Java SE 7 技術手冊 - 課後練習解答
Java SE 7 技術手冊 - 課後練習解答
Justin Lin
Metro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' View
Eric ShangKuan
[科科營]資工程式試作
[科科營]資工程式試作
nctutlc2013
香港六合彩
香港六合彩
香港六合彩 六合彩
Dev307
Dev307
建興 王
Go语言: 互联网时代的C
Go语言: 互联网时代的C
Googol Lee
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
逸 張
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
jane2006
第5章数组
第5章数组
summerfeng
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰
台灣資料科學年會
Ch10
Ch10
Alisha Smile
Ch10 教學
Ch10 教學
hungchiayang1
用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验
Leo Zhou
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Justin Lin
C++工程实践
C++工程实践
Shuo Chen
论 Python 与设计模式。
论 Python 与设计模式。
勇浩 赖
getPDF.aspx
getPDF.aspx
byron zhao
getPDF.aspx
getPDF.aspx
byron zhao
Hi Haskell
Hi Haskell
Jifeng Deng
Similaire à xwz 2010-10-31
(20)
Java SE 7 技術手冊 - 課後練習解答
Java SE 7 技術手冊 - 課後練習解答
Metro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' View
[科科營]資工程式試作
[科科營]資工程式試作
香港六合彩
香港六合彩
Dev307
Dev307
Go语言: 互联网时代的C
Go语言: 互联网时代的C
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
張逸 - 研究所 / 轉學考計算機概論 、公職計算機概要 - 程式語言 - 試閱版
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
第5章数组
第5章数组
Ecma script edition5-小试
Ecma script edition5-小试
[系列活動] Python 爬蟲實戰
[系列活動] Python 爬蟲實戰
Ch10
Ch10
Ch10 教學
Ch10 教學
用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
C++工程实践
C++工程实践
论 Python 与设计模式。
论 Python 与设计模式。
getPDF.aspx
getPDF.aspx
getPDF.aspx
getPDF.aspx
Hi Haskell
Hi Haskell
xwz 2010-10-31
1.
编程那些事儿
2.
练武不练功,到老一场空!
3.
内功: 数据结构,算法,架构,设 计模式,组成原理,操作 系统,计算机网络,基本 数学和计算机知识……
武功秘籍: 一个好的创意!!! 修炼 == 学习 实战 == 项目 兵器: 编程语言如C++,Java 等 C++基本功: C++语法,C++编程技 巧
4.
C++语法篇(1)- explicit explicit
显示调用构造函数,单参数构造函数使用 class String { ◦ explicit String(int size); ◦ String(const char*p); }; String s1 = ‘a’; //不可以 String s2(10); //OK String s3 = “abc”; //期待的形式
5.
C++语法篇(1)- explicit class
IntChildClassrray{ public: ◦ IntChildClassrray(int size); }; IntChildClassrray a(10); IntChildClassrray b(10); for(int i=0; i<10; ++i) if(a==b[i]) //What happened? ……
6.
C++语法篇(2)-成也寄存器 败也寄存器 register
建议编译器放进寄存器(频繁访问指针) volatile 别放进寄存器(for循环中的计数器i) 程序优化optimization编译参数 MSVC /Od /O1 /O2 /Ox GNU –O1 –O2 –O3
7.
C++语法篇(3)-强制类型转换 static_cast 就咱这编译器,基本告别C模式转换
double d=50.0; int i = (int)d; //在C++中过时了 int i = static_cast<int>(d);//More safe const_cast 去掉const和volatile属性,除非万不得已,不然还是远离它 void f(const TypeChildClass* a) { ◦ TypeChildClass* b=a; //Error ◦ TypeChildClass* b=const_cast<TypeChildClass*>(a); //终 于编译过了,最好不要这么做,如果你像更改,直接定义成非const的最 好 }
8.
C++语法篇(3)-强制类型转换 dynamic_cast 多态必备,运行时检查,主要用于基类向派生类转换.
class ChildClass:public BaseClass{}; BaseClass* ptr; ChildClass* a = dynamic_cast<ChildClass*>(ptr); //可以,More safe ChildClass* a = static_cast<ChildClass*>(ptr); //可以,More speed class ChildClass:virtual public BaseClass{}; BaseClass* ptr; ChildClass* a = dynamic_cast<ChildClass*>(ptr); //可以 ChildClass* a = static_cast<ChildClass*>(ptr); //不可以 void *ptr; MyClass* a = dynamic_cast<MyClass*>(ptr);//不可以 a = static_cast<MyClass*>(ptr); //可以,但是后果不堪设想
9.
C++语法篇(3)-强制类型转换 reinterpret_cast 负责把一个void*或者纯地址转换为所需类型
void *v; TypeA *a=reinterpret<TypeA*>(v); TypeA *a=reinterpret<TypeA*>(0x00ff); int cache(); 安全隐患 忠告: 第一.四种转换都是模板函数别忘了尖括号+括号 第二.尽量避免C模式的转换改用C++模式的强制类型转换 第三.const_cast和reinterpret_cast安全隐患比较大,尽量少 用.
10.
C++语法篇(4)-符号重载 符号重载:今天的牺牲是为了换来明天的解放 *(指针),->,[],++,--等符号在STL的容器当中 有大量的使用.
这里讲两种比较容易忽略的地方++i和i++操作 符和二元操作符的一个小细节(见operator.cpp) auto_ptr就是用到了*和->的重载来实现的,可 以很好的控制指针的申请和释放.
11.
C++语法篇(5)-&符号几时用? &引用符号什么时候用,这里主要讲一下传参和返回什么时候用.两种都是可 用可不用的,但是用了可以提高效率. 1.作为参数
首先是值传递,自定义类型最好用,默认类型可用可不用.不加引用符号,不会 出现错误,但是加了会提高效率.而默认类型加和不加效果并没有自定义类型 明显. void f(const Type1 &,const int &); void f(const Type2 &,const int); 2.作为返回类型 指针取值的都可以加. int f(){int value=0;return value;} int *value; int &f(){*value=0;return *value;} 最为常见: TypeA &TypeA::f(){return *this;}
12.
C++语法篇(6)-访问权限知多少 protected类型:子类可以访问. class
A { public: inline void g(A &a) { value = a.value; } protected: int value; };
13.
C++语法篇(6)-访问权限知多少 class B:public
A { public: inline void f() { value = a.value; } inline void h(A &c) { value = c.value; } private: A a; };
14.
C++应用篇(1)-模板的应用 模板类和函数的定义,用处不大,编程使用较少 模板类和函数的调用却处处可见:STL,boost
STL应用的建议(PC机上肯定试用,嵌入式选择性借鉴): 1.尽量使用模板,如:变长数组,排序,搜索,!!!字符串类型String.抛开任何内存和效率的顾虑 放心大胆的使用STL吧. 2.尽量不要尝试性在工程中使用自己实现的类STL库,你不会比STL写的更完美,更安全,更高 效. 3.sgi版本的模板跨平台性更强,实现更为广泛. 4.仿函数在模板中应用很广( 应用(3) ). 5.list<int>和list<double>完全是两个豪不相关的类,非继承关系,模板工作于编译阶段效 率很高. 6.struct Token{char*;enum} 用map吧! 7.迭代器中 <containter.end() 和 !=containter.end()不一样,一定要用后者! 8.当返回值为两个时, 还在使用A f(B*);吗,看来你OUT了,现在流行 pair<A,B> f(); 9.++i效率高于i++, x+=y效率高于x=x+y(相差不多无关紧要) 10.STL的作用域都是std,在工程中尽量不要用using namespace std;会产生命名空间冲 突,可以用using std::cout; using std::cin;
15.
C++应用篇(2)-C方法 vs C++方法
PC机平台强烈建议(嵌入式平台选择性建议): 1.尽量使用C++的new 和delete替代malloc和free,如果你 想用realloc可能vect更适合你. 2.多用流控制吧,比如cout替代printf,cin替代scanf,fstream 替代fopen.使用方便,并且方便和STL结合. 3.尝试用cstdio代替stdio.h,cstdlib代替stdlib.h还有其它的C 标准库也是.在C++中,类内部使用全局函数需要加上,比 如::fopen,::fwrite(与编译器相关). 4.inline,enum和const代替宏,仿函数代替指向函数的指针. 5.C++ lib不是万能的,但是C++却可以让我们不付出任何代 价的调用C lib,不用白不用. 6.不要去担心语言差异的效率问题,C只比C++快那么一点点. 而使用得当的面向对象可以把你的编程效率提高好几倍,好的 框架也可以为今后的扩展和维护省下一大笔人力,资金和时间.
16.
C++应用篇(3)-仿函数 仿函数:顾名思义仿制的函数,不是真正意义上的 函数,它实际是一个括号操作符的重载. 举例:比如排序函数的比较方法(见functor.cpp)
17.
C++应用篇(4)-循环只做它该做的 老祝语:万恶的strlen,可恶的for循环. for(
; ; ) { ◦ a[i] = strlen(str) + i; } int len = strlen(str); for( ; ; ) { ◦ a[i] = len + i; } 万恶的临时变量: for( ; ; ) { ◦ int temp = 0; //我不属于这里,放到for循环之外 ◦ temp = a[i]; ◦ a[i]= b[i]; ◦ b[i] = temp; }
18.
C++应用篇(5)-Qt and MFC
are C++ 无论是Qt还是MFC,你首先要记住它先是C++,然后 才是Qt或者MFC.所以你必须遵守C++的一切规则. 无论用Qt还是MFC亦或是别的GUI库,STL可以 用,C++的一切语法和特性在这都可以用.立足于我在 写的是C++程序,调用了Qt或者MFC类库. 当Qt或者是MFC库中没有你想要的东西的时候,记得 回归C++思想去解决问题,写lib的人也不可能面面俱 到.它没办法把每一个人的需求全部考虑到.而且C++ 的开源库都是可以用进来帮助你解决问题的. 一个”Qt的Assistant”引发的血案!
19.
面向对象的精髓-设计模式 面向对象并不一定能够提高运行效率,效率主要是 和算法挂钩. C是一种”尽可能接近机器”的语言,C++是一种” 尽可能接近需要解决的问题”的语言
Bjarne Stroustrup 方便灵活的接口和合理设计模式才是C++的优点 设计模式是伪科学?? 23种Only?? 束缚编程人员的 创造能力??
20.
参考书籍 C++程序设计语言 C++沉思录
Effective C++ More Effective C++ C++标准程序库 STL源码剖析
21.
首先感谢党和祖国 还要感谢CCTV,MTV和各种TV
Télécharger maintenant