动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息



本月文章推荐
.创世纪的C++ Builder--入门例子.
.C语言五子棋算法.
.如何单步执行外部程序.
.C++中用赋值形式op=取代单独形式.
.TCanvas.
.C++计算四则表达式的模板.
.C语言初学者入门讲座 第十六讲 文.
.三视图的画法.
.C++箴言:声明为非成员函数的时机.
.ASP.NET创建Web服务之管理Web服务.
.类模拟的性能分析.
.C++对象布局及多态实现探索之虚函.
.C++开发中数据结构和算法的分离.
.C语言教程第四章: 数组.
.C++ Builder 链接DLL.
.大家进来瞧瞧我编的小迷宫,望大.
.二叉树的几种运算方法.
.wk里有没有类似c语言里的break的.
.C++启蒙之C++中的类.
.C语言入门之指针的慨念(1).

C语言的结构和C++类的异同

发表日期:2008-3-8 |



  学过C++的人一定知道类是什么,精通C的人也一定知道什么是结构,作为一名C语言的初学者的我,不仅产生了一些疑问:什么叫结构,什么是类?有人说他们长的很像,为什么这么说呢?他们之间有什么联系呢?但他们究竟一个叫结构另一个叫类,他们又有什么区别呢?带着这些问题,我浅浅的了解了一下C语言的结构和C++的类。

  首先我们要知道什么是结构什么是类:

  结构是用同一个名字引用的相关的集合(或称聚合题),它是用其他类型的对象构造出来的派生数据类型。

  说到派生,其实也不难理解:

  结构中可包含多种不同数据类型的变量,如:int型的,float型的,char型的,long型的,甚至数组合指针,以及自引用指针等等,结构中包含有这些数据类型的变量,所以说结构是派生而来。

  结构实例:

strUCt player/*要害字struct定义一个结构*/
{      
 int number;/*声明一个int型的number*/
 char *name;
 char *nationality;
}
  在struct后边的player就变成了像int,一样的声明符。

main()
{
 struct player A;/*声明一个player型的结构A*/
 struct player *aptr;/*声明一个指针*/
 ......
}
  数组与结构一瞥:

  相同点 特点 数组 都是聚合体 数组种植包含相同的数据类型的元素,每个元素都有在数组下的一个数标,如:s[n] 结构   可包括多种不同数据类型的变量。(本篇大部分都在介绍结构,在这里就不多说了) 枚举   利用要害字enum声明枚举,一般用来声明元素有规律的对象体,例如:月份,日期,星期等。 联合   利用要害字union声明联合,联合的每个成员的地址就是联合对象的地址,之所以他们公用一个地址,所以联合又叫共同体,也因此只有最后赋给联合成员的值才有效。
符号 名称 读法 用法 . 结构成员运算符 结构A的成员number A.number -> 结构指针运算符 aptr指向结构的成员 aptr->number
  结构初始化:

  结构初始化有两种:

  1. 用初始化列表初始化,即在声明结构变量时,在变量明后用等号连接在花括号中的初始化值列表来初始化该结构变量,初始化值用逗号分开。例如:
struct player A={5,“Xiaogang”,“China”};

  2. 利用访问结构成员初始化。

  例如:

A.number=5;
A.name="Xiaogang"
A.nationality="China";/*效果于1定义得一样*/

aptr ->number=5;
aptr ->name="Xiaogang";
aptr ->nationality="China";/*效果于1定义得一样*/
  要害字typedef:

  typedef 可用来建立已定义好的数据类型的别名。例如:

  typedef struct player Player;

  定义型的类型名Player,它是类型struct player的别名。

  *结构的重要性是不言而喻的,他和指针可用来构造更复杂的数据结构,例如:链表、队列、堆栈和树。

(在这里我就不多说了!)

  类定义:

  在解释类之前,我们必须了解对象:

  称现实世界中客观存在的事物为对象,只要是客观世界你能想得到的实物、抽象的物都可以是一个对象;例如:整数是一个对象,汽车是对象,人也是对象......

  C++可使用对象名、属性和操作三要数来描述对象,我们用对象结构图来描述一个对象:

C语言的结构和C++类的异同(图一)

  这里有一个人叫小刚,我们用对象结构图来描述他:

C语言的结构和C++类的异同(图二)

  清楚什么是对象了,我们可以介绍类了。 更多文章 更多内容请看C/C++技术专题  C/C++进阶技术文档专题,或

  像构造枚举和结构一样,类也是一种用户自己构造的数据类型,类是在C++下的,所以类遵循C++的规定。C++中声明的一般形式为:

class 类名 {
            私有数据和函数   /*假如没有使用要害字,则所有成员默认private:为                         private权限*/

            私有数据和函数
     public:
            共有数据和函数
     protected:
            保护数据和函数
};
  私有(Private)成员,只有在类中说明的函数才能访问该类的私有成员,而在该类外的函数不可以访问私有成员;公有(Public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(Protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。

  从上图可以看出,类与结构既有相似又有不同,class似与struct一样是声明一个聚合体,而且类也有数据成员,但是类声明的对象的初始化则与结构大相径庭,(对象的初始化使用构造函数来完成的,构造函数将在后边介绍)结构中没有像类一样的如public这样的权限,结构中是不可以有函数的,而类中可以存在函数。
构造函数:

  *“构造函数”是一个非凡的成员函数,不要把它理解为构造一个函数,在c++中构造函数一般与类的名字相同。


class circle {
private:
    int r;         /*一个圆的搬进是圆的数据成员(圆性质)*/
public:
    circle(int i);
};                /*定义一个圆类*/
include <iostream.h>
circle::circle(int i){      /*"::"是类运算符,只要记住‘.’和‘->’是用于对象的,"::"                   是用于类的成员的*/
 r=i;
}                 /*定义构造函数*/

main(){
 circle(6);           /*初始化了r=6*/
}
  此上为构造函数简单用法。既然说到了构造函数,也就跑不了析构函数。在对象消失时,析构函数将释放由构造函数分配的内存。一般用于类通明的函数名,没有参数,并在函数前面加上“~”号。如:~circle();

  从已有的对象类型出发建立一种新的对象类型,使它继续原对象的特点和功能,这种思想是面向对象设计的主要贡献。

  从一个或多个以前定义的类产生型类的过程称为派生,这个新类又成为派生类。类的继续是指新类从基类那里得到的特征,也就是继续基类的数据和函数。继续和派生类不难理解,在我们生活中继续的例子不胜枚举。

  如:中学生、大学生继续学生的性质;输入输出设备继续输入设备和输出设备的性质和特点。

C语言的结构和C++类的异同(图三)

  可见,类要比结构功能强,性质多,类中存在函数,可以看作是一个活生生的生物,它可以做一系列动作,甚至可以继续;而结构似乎是一个“笔记本”,她只记录了物体的一些性质。我作为一个初学者,是以结构为引子,了解了一些c++的类,涉入不深,还请高手多提建议! 更多文章 更多内容请看C/C++技术专题  C/C++进阶技术文档专题,或

上一篇:Visual C++中动态链接库技术浅谈 人气:313
下一篇:写好C程序的10条秘籍 人气:206
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.8 Build 0
2008-7-6 讯息内容管理系统 v2.1
2008-7-6 三五电影程序 v2.0
2008-7-6 神鹰腾讯小说小偷 v3.0
2008-7-6 EasyIDE Framework v1.0 Build 2
2008-7-6 品告CMS系统(电影版) v0.9
2008-7-6 QQ自动登录器 C# 源码 v1.0
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報