`
haoningabc
  • 浏览: 1482703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c的书籍

    博客分类:
  • c
c 
阅读更多
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/


http://man.lupaworld.com/content/develop/joyfire/system/8.html
转自一个朋友的空间收藏的

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。 
1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段 
2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C++脚本和程序。所有程序都分为不同的类别。 
3、http://www.planetsourcecode.com/vb/default.asp?lngWId=3 --超过万行C和C++免费的源代码 
4、http://freshmeat.net/browse/164/ --超过9000个C编写的项目。 
5、http://www.daniweb.com/code/c.html --DANIWEB提供的实用代码段 。 
6、http://www.programmersheaven.com/tags/C/ --programmersheaven.com上的C编程资源。 
7、http://www.ddj.com/code/ddj.html --Dr. Dobb’s Journal的源代码。 
8、http://www.cprogramming.com/cgi-bin/source/source.cgi --C和C + +编程资源。 
9、http://www.codecogs.com/ --CodeCogs是一项协作的开放源码库,C/C++的数值方面的组件。 
10、http://www.google.com/codesearch?q=programming++lang:c&cs_r=lang:c --谷歌代码的C源代码。 
11、http://www.codepedia.com/1/C --CodePedia是一个开放的关于系统编程和其他与电脑有关的议题。 
12、http://www.cis.temple.edu/~ingargio/cis71/code/ --为学生提供的一个简单的C语言程序的列表。 
13、http://www.codeproject.com/?cat=2 --codeproject提供的C/C++资源代码项目。 
14、http://www.thefreecountry.com/sourcecode/cpp.shtml --以下是一些C和C++库的DLL,VCLs,源代码,元件,模块,应用程序框架,类库,源代码片段等,你可以在您的项目中使用而不需要支付费用和版税。 
15、http://people.sc.fsu.edu/~burkardt/cpp_src/cpp_src.html --这是一个全面的关于C++的345个源代码清单。 
16、http://www.cplusplus.com/src/ --C++写的通用控制台程序和Windows程序代码清单。 
17、http://users.cs.fiu.edu/~weiss/dsaa_c++/code/ --C++语言数据结构与算法分析(第二版)的源代码。 
18、http://c.snippets.org/ --C源代码片段。 
19、http://www.bbdsoft.com/downloads.html --C++源代码。 
20、http://www.moshier.net/ 天文学和数值软件源代码 
21、http://cplus.about.com/od/cgames/C_Games_with_Source_Code.htm --游戏有关的C++源代码。 
22、http://cliodhna.cop.uop.edu/~hetrick/c-sources.html --免费的C/C++数值计算源代码。 
23、http://www.mathtools.net/C_C__/Utilities/index.html --C/C++工具。 
24、http://www.programmerworld.net/resources/c_library.htm --免费C++源代码和其它有用的工具。 
25、http://www.cmcrossroads.com/bradapp/links/cplusplus-links.html --布拉德阿普尔顿的C++链接-资源,项目,图书馆,教学和编码。 
26、http://www.robertnz.net/cpp_site.html --这是一个收集了数C/C++网站链接列表的网页。 
27、http://www.josuttis.com/libbook/examples.html --在这里,你可以看到并下载所有的本书的C++标准库例子 。 
28、ftp://66.77.27.238/sourcecode/cuj/ --C/C++用户杂志 
29、ftp://66.77.27.238/sourcecode/wd/ --Windows开发者网络 
30、http://www.einet.net/directory/65892/Developers.htm --C程序 
31、http://www.daniweb.com/code/cplusplus.html --实用代码段。 
32、http://snippets.dzone.com/tag/c --C++源代码 
33、http://www.programmersheaven.com/tags/C --C++编程资源,programmersheaven.com 
34、http://www.google.com/codesearch?hl=en&lr=&q=programming --谷歌代码搜索-C++编程语言 
35、http://www.codepedia.com/1/Cpp --CodePedia是一个开放的关于系统编程和其他与电脑有关的议题的网站。 
36、http://www.codebeach.com/index.asp?TabID=1&CategoryID=3 --C++源代码,Codebeach提供 
37、http://freshmeat.net/browse/165/ --5000项目写的C++编程语言 
38、http://cplus.about.com/od/codelibrary/Code_Library_for_C_C_and_C.htm --代码库C、C + +和C#。 
39、http://www.c.happycodings.com/ --Visual Basic、PHP、ASP技术、C、C++大全。 
40、http://www.blueparrots.com/ --Borland C游戏,图像和声音源代码范例。 
41、http://www.java2s.com/Code/Cpp/CatalogCpp.htm --C++源代码。 
42、http://www.yeohhs.com/modules/mydownloads/ --C与C++电子书和源代码示例。 
43、http://www.brpreiss.com/books/opus4/programs/index.html C++的数学方程和公式源代码。 
44、http://users.cs.fiu.edu/ C++。 
45、http://www.josuttis.com/libbook/examples.html --C++标准库-教程和参考资料。 
46、http://emr.cs.uiuc.edu/~reingold/calendars.shtml Edward M. Reingold's Calendar Book, Papers, and Code。 
47、http://cpp.snippets.org/ --c++源代码档案。 
48、http://ubiety.uwaterloo.ca/~tveldhui/papers/techniques/ --用C和C++的解决科学问题。 
49、http://c.ittoolbox.com/topics/core-c/ --C/C++的IT工具框。 
50、http://www.le.ac.uk/cc/tutorials/c/ccccdbas.html --本文件中包含有大量的C示例程序。



一、

 C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。

    struct能包含成员函数吗?   能!

    struct能继承吗?          能!!

    struct能实现多态吗?       能!!!

 

     最本质的一个区别就是默认的访问控制,体现在两个方面:
    1)默认的继承访问权限。struct是public的,class是private的。

       写如下的代码:

    struct A

    {

      char a;

    };

    struct B : A

    {

      char b;

    };

    这个时候B是public继承A的。如果都将上面的struct改成class,那么B是private继承A的。这就是默认的继承访问权限。所以我们在平时写类继承的时候,通常会这样写:

    struct B : public A

    就是为了指明是public继承,而不是用默认的private继承。

    当然,到底默认是public继承还是private继承,取决于子类而不是基类。我的意思是,struct可以继承class,同样class也可以继承struct,那么默认的继承访问权限是看子类到底是用的struct还是class。如下:

    struct A{};

    class B : A{};    //private继承

    struct C : B{};  //public继承

 
    2)struct作为数据结构的实现体,它默认的数据访问控制是public的,而class作为对象的实现体,它默认的成员变量访问控制是private的。

    3)“class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。

 

    4) 还是上面所说的,C++中的struct是对C中的struct的扩充,既然是扩充,那么它就要兼容过去C中struct应有的所有特性。例如你可以这样写:

    struct A    //定义一个struct

    {

     char c1;

     int  n2;

     double db3;

    };

    A a={'p',7,3.1415926};  //定义时直接赋值

    也就是说struct可以在定义的时候用{}赋初值。

    向上面的struct中加入一个构造函数(或虚函数),struct也不能用{}赋初值了。的确,以{}的方式来赋初值,只是用一个初始化列表来对数据进行按顺序的初始化,如上面如果写成A a={'p',7};则c1,n2被初始化,而db3没有。这样简单的copy操作,只能发生在简单的数据结构上,而不应该放在对象上。加入一个构造函数或是一个虚函数会使struct更体现出一种对象的特性,而使此{}操作不再有效。事实上,是因为加入这样的函数,使得类的内部结构发生了变化。而加入一个普通的成员函数呢?你会发现{}依旧可用。其实你可以将普通的函数理解成对数据结构的一种算法,这并不打破它数据结构的特性。至于虚函数和普通成员函数有什么区别,我会具体写篇文章讨论。

    那么,看到这里,我们发现即使是struct想用{}来赋初值,它也必须满足很多的约束条件,这些条件实际上就是让struct更体现出一种数据机构而不是类的特性。那为什么我们在上面仅仅将struct改成class,{}就不能用了呢?其实问题恰巧是我们之前所讲的——访问控制!你看看,我们忘记了什么?对,将struct改成class的时候,访问控制由public变为private了,那当然就不能用{}来赋初值了。加上一个public,你会发现,class也是能用{}的,和struct毫无区别!!!

  从上面的区别,我们可以看出,struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。

 

二、

关于使用大括号初始化
  class和struct如果定义了构造函数的话,都不能用大括号进行初始化
  如果没有定义构造函数,struct可以用大括号初始化。
  如果没有定义构造函数,且所有成员变量全是public的话,可以用大括号初始化。
关于默认访问权限
  class中默认的成员访问权限是private的,而struct中则是public的。
关于继承方式
  class继承默认是private继承,而struct继承默认是public继承。
  且看如下代码(看看编译器给出的错误信息):

class T1
{
 public:
  void f()
  {
   cout<<"T1::f()"<<endl;
  }
 int x,y;
};
struct T2
{
 int x;
 void f(){cout<<"T2::f()"<<endl;}
};
struct TT1 : T1
{
};
class TT2 : T2
{
};
int main()
{
 TT1 t1;
 TT2 t2;
 t1.f();
 t2.f();
}

关于模版
  在模版中,类型参数前面可以使用class或typename,如果使用struct,则含义不同,struct后面跟的是“non-type template parameter”,而class或typename后面跟的是类型参数。

template <struct X>
void f(X x)
{
}
//出错信息:d:codecpptestcpptestcpptest.cpp(33) : error C2065: 'X' : undeclared identifier



分享到:
评论

相关推荐

    c语言图书借阅系统源码.zip

    【C语言图书借阅系统源码】是一个基于C语言实现的图书管理软件,它提供了基本的图书借阅、归还、查询以及用户管理等功能。在深入解析这个源码之前,我们先来了解一下C语言和图书管理系统的基础知识。 C语言是计算机...

    c语言图书管理系统源码 c语言图书管理系统源码

    C语言图书管理系统是一种基于C语言实现的信息管理软件,主要用于图书馆内部的书籍信息管理、借阅与归还操作、用户管理等功能。这样的系统可以帮助图书馆员高效地处理日常事务,提高工作效率,同时也为读者提供了便捷...

    C语言 图书管理系统

    《C语言 图书管理系统》是一个基于C语言编写的软件项目,旨在为学生提供一个实践学习的平台,尤其适用于课程设计。这个系统集成了多种图书管理功能,能够满足基础的图书借阅、归还、查询以及用户管理的需求。下面将...

    c语言图书管理系统课程设计

    《C语言图书管理系统课程设计详解》 在计算机科学的学习过程中,课程设计是理论与实践相结合的重要环节。本项目“C语言图书管理系统”就是一个典型的应用型课程设计实例,它旨在帮助学生掌握C语言编程技巧,理解...

    c语言图书管理系统

    《C语言图书管理系统详解》 在信息技术领域,开发一个图书管理系统是常见的实践项目,而以C语言为基础构建的图书管理系统更是对于初学者来说极好的学习案例。本文将深入探讨这样一个系统的设计与实现,涵盖C语言...

    c语言图书管理系统源码.zip

    《C语言图书管理系统源码详解》 C语言作为基础编程语言,因其简洁高效而深受程序员喜爱。本系统——“C语言图书管理系统”是基于C语言实现的一个小型信息管理应用,旨在帮助用户方便地管理和检索图书信息。下面我们...

    C图书管理系统(c语言做的)

    这是一个C语言图书管理系统,本人学C时实战练习时做的一个小项目。主界面是登录注册界面,注册有验证两次密码是否一致,如不一致,则返回1给调用函数,后重新取出输入的用户名,做到了清屏不用重新输入用户名的用户...

    C语言图书借阅管理系统课程设计报告.doc

    【C语言图书借阅管理系统】是一个使用C语言编程的课程设计项目,旨在训练学生掌握C语言的构造化程序设计方法,解决实际问题的能力,并积累软件开发经验。该项目要求设计一个图书借阅管理系统,能对图书馆内N本图书的...

    EGE C语言 图书馆管理系统 实习作业

    例如,链表便于插入和删除图书,而数组可以快速访问特定位置的书籍。此外,查询操作可能涉及到排序算法,如快速排序或二分查找,以提高搜索效率。 6. **错误处理与异常安全**:任何软件系统都需要考虑到错误和异常...

    C语言图书管理系统简洁版

    在主程序`main.c`文件中,全局变量`Book_Record`被用来记录图书的数量,这在系统运行过程中起到了跟踪和管理图书库存的关键作用。 这个简洁版的C语言图书管理系统虽然没有图形用户界面,但它通过DOS命令行交互,...

    数据结构c语言图书管理系统.pdf

    数据结构C语言图书管理系统设计 本文旨在设计一个基于C语言的图书管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。系统设计要求实现以下六个功能:用户登录、图书信息管理、学生信息管理...

    C语言图书信息管理系统源代码

    该系统旨在通过C语言实现一个简单的图书信息管理平台,帮助用户完成图书的录入、查询、浏览等功能,并提供备份与还原机制确保数据的安全性。 #### 2. 系统组成 - **数据结构定义**:系统中定义了多个`struct book`...

    C语言图书管理系统

    C语言图书管理系统,实现图书的增删改查功能

    C语言图书管理系统程序

    3. 动态内存分配:当图书数量不确定或需要在运行时动态添加书籍时,会使用malloc和free函数进行动态内存分配和释放。 4. 算法实现:在搜索、排序图书时,可能运用了各种排序算法(如冒泡排序、快速排序或二分查找)...

    纯C语言图书管理系统(功能齐全)

    《纯C语言图书管理系统》是一款基于C语言编写的软件,旨在提供全面的图书管理功能,包括书籍查询、借阅管理以及管理员操作等。系统具备关键字查找、按作者和书名搜索等多种检索方式,以满足不同用户的查找需求。此外...

    c语言图书管理系统(包含完整代码和本地数据)

    大一下学期工程实践课程的...3、管理员:图书入库,清除库存,统计书籍数量,统计读者借书情况,在馆书籍排序,读者排序。4、读者:查看个人借阅信息,借书,还书,按书名、作者、出版社检索图书,查询全部在馆图书。

    c语言图书管理系统源码

    《C语言图书管理系统源码详解》 在计算机科学领域,图书管理系统是一种常见的应用程序,用于管理和组织图书馆中的书籍信息。本文将深入探讨一个基于C语言实现的图书管理系统的源码,帮助读者理解C语言在实际项目中...

Global site tag (gtag.js) - Google Analytics