欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
C++
来自开放百科 - 灰狐
C++语言是一种应用较广的面向对象的程序设计语言,使用它可以实现面向对象的程序设计。面向对象的设计与面向过程的设计是有很大区别的,面向对象的程序设计是在面向过程的程序设计的基础上一个质的飞跃。要学会面向对象的程序设计,首先要学会一种面向对象的语言,即要学会用VC编程,就要先有C++的基础,而学习C++语言首先要认识它面向对象的特性和实现面向对象的方法。
第一个 C++ 程序
- include <iostream>
int main() {
std::cout << "hello, world\n";
}
目录 |
Library
Standard C++ library headers listed below, 13 constitute the Standard Template Library, or STL.
- <algorithm> -- (STL) for defining numerous templates that implement useful algorithms
- <bitset> -- for defining a template class that administers sets of bits
- <cassert> -- for enforcing assertions when functions execute
- <cctype> -- for classifying characters
- <cerrno> -- for testing error codes reported by library functions
- <cfloat> -- for testing floating-point type properties
- <ciso646> -- for programming in ISO 646 variant character sets
- <climits> -- for testing integer type properties
- <clocale> -- for adapting to different cultural conventions
- <cmath> -- for computing common mathematical functions
- <complex> -- for defining a template class that supports complex arithmetic
- <csetjmp> -- for executing nonlocal goto statements
- <csignal> -- for controlling various exceptional conditions
- <cstdarg> -- for accessing a varying number of arguments
- <cstddef> -- for defining several useful types and macros
- <cstdio> -- for performing input and output
- <cstdlib> -- for performing a variety of operations
- <cstring> -- for manipulating several kinds of strings
- <ctime> -- for converting between various time and date formats
- <cwchar> -- for manipulating wide streams and several kinds of strings
- <cwctype> -- for classifying wide characters
- <deque> -- (STL) for defining a template class that implements a deque container
- <exception> -- for defining several functions that control exception handling
- <fstream> -- for defining several iostreams template classes that manipulate external files
- <functional> -- (STL) for defining several templates that help construct predicates for the templates defined in <algorithm> and <numeric>
- <iomanip> -- for declaring several iostreams manipulators that take an argument
- <ios> -- for defining the template class that serves as the base for many iostreams classes
- <iosfwd> -- for declaring several iostreams template classes before they are necessarily defined
- <iostream> -- for declaring the iostreams objects that manipulate the standard streams
- <istream> -- for defining the template class that performs extractions
- <iterator> -- (STL) for defining several templates that help define and manipulate iterators
- <limits> -- for testing numeric type properties
- <list> -- (STL) for defining a template class that implements a list container
- <locale> -- for defining several classes and templates that control locale-specific behavior, as in the iostreams classes
- <map> -- (STL) for defining template classes that implement associative containers
- <memory> -- (STL) for defining several templates that allocate and free storage for various container classes
- <numeric> -- (STL) for defining several templates that implement useful numeric functions
- <ostream> -- for defining the template class that performs insertions
- <queue> -- (STL) for defining a template class that implements a queue container
- <set> -- (STL) for defining template classes that implement associative containers with unique elements
- <sstream> -- for defining several iostreams template classes that manipulate string containers
- <stack> -- (STL) for defining a template class that implements a stack container
- <stdexcept> -- for defining several classes useful for reporting exceptions
- <streambuf> -- for defining template classes that buffer iostreams operations
- <string> -- for defining a template class that implements a string container
- <strstream> -- for defining several iostreams classes that manipulate in-memory character sequences
- <utility> -- (STL) for defining several templates of general utility
- <valarray> -- for defining several classes and template classes that support value-oriented arrays
- <vector> -- (STL) for defining a template class that implements a vector container
C++学习
C++语言中出现的 extern "C"语法
extern "C" { extern int getopt(int, char * const *, const char *); extern char *optarg; }
被extern "C"修饰的变量和函数是按照C语言方式编译和连接的;
这源于C++支持函数重载,而过程式语言C则不支持。而编译后的名字会有所不同,
void foo( int x, int y ); c 编译后 _foo c++ 编译后 _foo_int_int void foo( int x, float y ) c++ 编译后 _foo_int_float
编译后的类似_foo_int_int这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。
Documents
- C/C++ Reference: http://docs.huihoo.com/cppreference/
- Complete C++ language tutorial: http://docs.huihoo.com/gnu/c++-tutorial/tutorial/
- Boost C++ Libraries: http://docs.huihoo.com/boost/
- How To Think Like A Computer Scientist Learning with C++
- Data Structures and Algorithms with Object-Oriented Design Patterns in C++
相关链接
- C++之父 http://public.research.att.com/~bs/
- C++ Coding Standard - http://docs.huihoo.com/gnu/CppCodingStandard.html
- 荣耀 http://www.royaloo.com/
Free C/C++ Compilers
- GCC http://gcc.gnu.org/
- MinGW http://www.mingw.org/
- Cygwin (GNU + cygnus + Windows) http://cygwin.com/
- Visual C++ Toolkit 2003 http://msdn.microsoft.com/visualc/vctoolkit2003/
- Borland C++ Compiler 5.5 http://www.borland.com/products/downloads/download_cbuilder.html
- Borland C++BuilderX Personal 1.0 http://www.borland.com/products/downloads/download_cbuilderx.html
- Digital Mars C/C++ Compiler for Win32 http://www.digitalmars.com
- Open Watcom http://www.openwatcom.org/
- Dinkum Exam (EDG C++ front end) http://dinkumware.com/exam/dinkumExam.aspx
- Comeau C++ Online (EDG C++ front end) http://www.comeaucomputing.com/tryitout/
C/C++ News Groups
- comp.lang.c.moderated
- comp.lang.c++.moderated
- comp.std.c++
C/C++ Misc
- The C Standards Committee(ISO C) http://www.open-std.org/jtc1/sc22/wg14/
- The C++ Standard Committee(ISO C++) http://www.open-std.org/jtc1/sc22/wg21/
- ACCU (The Association of C and C++ Users) http://www.accu.org
- Incompatibilities Between ISO C and ISO C++ http://david.tribble.com/text/cdiffs.htm
- STLFilt: An STL Error Message Decryptor for C++ http://www.bdsoft.com/tools/stlfilt.html
- CppUnit http://cppunit.sourceforge.net
- The C++ Source http://www.artima.com/cppsource/
- QT http://www.trolltech.com
C++ Libraries
- Boost http://www.boost.org
- SGI STL http://www.sgi.com/tech/stl
- STLport http://www.stlport.org
- RougeWave Standard C++ Library http://www.ccd.bnl.gov/bcf/cluster/pgi/pgC++_lib/stdlib.htm
- ACE http://www.cs.wustl.edu/~schmidt/ACE.html
- FC++ http://www.cc.gatech.edu/~yannis/fc++/
- Blitz++ http://www.oonumerics.org/blitz
- Loki http://sourceforge.net/projects/loki-lib/
- MTL http://www.osl.iu.edu/research/mtl/
- POOMA http://www.pooma.com
- CGAL http://www.cgal.org/
- ROOT http://root.cern.ch/root/
精彩图集
VC ++
VC++6.0MSDN
下载1 ISO文件 下载2 RAR 文件 下载3 RAR 文件
External links
Materials
- Dinkumware's C++ Library Reference Manual
- C/C++ Reference
- Standards Committee Page: JTC1/SC22/WG21 - C++
- CodePedia
- A Compiler-Comparison chart
Tutorials
- C++ Language Tutorial cplusplus.com
- C++ Programming Tutorial About.com
- The C++ Annotations
- Programming in C++ .
Electronic books
- Free book "C++ In Action" by Bartosz Milewski
- Free book "Thinking in C++" by Bruce Eckel
- Computer-Books.us Collection of online C++ books.
- How To Think Like A Computer Scientist: Learning with C++ by A.B. Downey
Support
- C++ FAQ Lite by Marshall Cline
- Newsgroups "comp.lang.c++" "comp.lang.c++.moderated" "comp.std.c++"
- C++ Forum at Cprogramming.com
- C and C++ at Daniweb
- C++ Forum at Dream.In.Code
Other
- http://ootips.org/
- links to C++ Tools
- Internet sites and files of interest to C++ users, A categorised list of C++ related links.
Libraries and code repositories
- Boost.org - Selection of peer-reviewed C++ libraries designed to work with the standard C++ library
- CodeSynthesis XSD - Open-source XML data binding framework for C++
- csourcesearch.net (Searchable Open Source C/C++ Code Archive)
- Portable foundation classes from GNU
- STLSoft libraries: Open-source, 100% header-only, C/C++ libraries of technology-specific facades and STL extensions.
分享您的观点