当前位置: 首页 > news >正文

两网站会员同步做摄影网站

两网站会员同步,做摄影网站,昆明小程序制作公司,免费网站制作平台推荐C面向对象程序设计-北京大学-郭炜【课程笔记#xff08;二#xff09;】 1、结构化程序设计结构化程序设计的不足 2、面向对象的程序设计2.1、面向对象的程序设计2.2、从客观事物抽象出类2.3、对象的内存分配2.4、对象之间的运算2.5、使用类的成员变量和成员函数用法1#x… C面向对象程序设计-北京大学-郭炜【课程笔记二】 1、结构化程序设计结构化程序设计的不足 2、面向对象的程序设计2.1、面向对象的程序设计2.2、从客观事物抽象出类2.3、对象的内存分配2.4、对象之间的运算2.5、使用类的成员变量和成员函数用法1对象名.成员名用法2指针-成员名用法3引用.成员名 2.6、类成员的可访问范围2.6.1、代码实例2.6.2、private的意义隐藏的作用2.6.3、成员函数的重载及参数缺省 课程链接程序设计与算法三C面向对象程序设计 北京大学 郭炜 课程PPTgithub提供的对应课程PPT 1、结构化程序设计 C语言使用结构化程序设计 程序 数据结构 算法 程序由全局变量以及众多相互调用的函数组成。算法以函数的形式实现用于对数据结构进行操作。 结构化程序设计的不足 结构化程序设计中函数和其所操作的数据结构没有直观的联系。随着程序规模的增加程序逐渐难以理解很难一下子看出来 某个函数结构到底有哪些函数可以对他进行操作 某个函数到底是用来操作哪些数据结构的 任何两个函数之间存在怎样的低哦啊用关系 结构化程序设计没有“封装”和“隐藏”的概念。要访问某个数据结构中的某个变量就可以直接访问那么当该变量的定义有改动的时候就要把所有访问该变量的语句找出来修改十分不利于程序的维护、扩充。 难以查错当某个数据结构的值不正确时难以找出到底是哪个函数导致的。 结构化程序设计中随着程序规模的扩大由于程序大量函数、变量之间的关系错综复杂要抽取这部分代码变得十分困难无法重用。 2、面向对象的程序设计 面向对象的程序设方法能够较好的解决上述结构化程序设计的不足。 面向对象的程序 类 类 ···· 类设计程序的过程就是设计类的过程。 2.1、面向对象的程序设计 面向对象的程序设计方法 将某类客观事物共同特点属性归纳出来形成一个数据结构可以用多个变量描述事物的属性将这类事物所能进行的行为也归纳出来形成一个个函数这些函数可以用来操作数据结构这一步叫“抽象”。 然后通过某种语法形式将数据结构和操作该数据结构的函数“捆绑”在一起形成一个“类”从而使得数据结构和操作该数据结构的算法呈现出显而易见的紧密关系这就是“封装”。 面向对象的程序设计具有“抽象”“封装”“继承”“多态”四个基本特点。 面向对象的程序模式如下图所示 2.2、从客观事物抽象出类 将长、宽变量和设置长、宽求面积以及求周长的三个函数“封装”在一起就能形成一个‘矩形类’。长、宽变量成为该“矩形类”的“成员变量”三个函数成为该类的“成员函数”。成员变量和成员函数统称为类的成员。 代码 #include iostream class CRectangle {public:int w, h; // 成员变量// 三个成员函数int Area() {return w * h;}int Perimeter() {return 2 * (w h);}void Init(int w_, int h_) {w w_; h h_;} }; //必须有分号int main() {int w,h;CRectangle r; // r是一个对象std::cout 请输入w和hstd::endl;std::cin w h;r.Init(w, h);std::cout r.Area() std::endl r.Perimeter();return 0; }//OUT 请输入w和h 1 3 面积 3; 周长 8通过类可以定义变量。类定义出来的变量也称为类的实例就是我们所说的“对象”。 C中类的名字就是用户定义的类型的名字。可以像使用基本类型那样来使用它。CRectangle就是一种用户自定义的类型。 2.3、对象的内存分配 和结构变量一样对象所占用的内存空间的大小等于所有成员变量的大小之和。对于上面的CRectangle类sizeof(CRectangle) 8 成员函数会占用存储空间但是一个类的成员函数在内存中只有一份他被所有对象所共享成员函数不会放入到对象里面。(对象只包含成员变量不包含成员函数。) 每个对象各有自己的存储空间。一个对象的某个成员变量被改变了不会ing下昂另一个对象。 2.4、对象之间的运算 和结构变量一样对象之间可以用 “” 进行赋值但是不能用“”“”“”““”“进行比较除非这些运算符经过了“重载”。 2.5、使用类的成员变量和成员函数 用法1对象名.成员名 CRectangle r1, r2; r1.w 5; r2.Init(5, 4);Init函数作用在r2上即Init函数执行期间访问的w和h是属于r2这个对象的执行r2.Init不会影响到r1。 用法2指针-成员名 CRectangle r1,r2; CRectangle * p1 r1; CRectangle * p2 r2; p1-w 5; p2-Init(5,4); //Init作用在p2指向的对象上用法3引用.成员名 CRectangle r2; CRectangle rr r2; rr.w 5; rr.Init(5,4); // rr的值变了r2的值也会随着改变void PrintRectangle(CRectangle r) {cout r.Area() , r.Perimeter(); } CRectangle r3; r3.Init(5,4); printRectangle(r3);2.6、类成员的可访问范围 2.6.1、代码实例 #include iostream #include stdio.h // #include string.hclass CEmployee { private:char szName[30]; //名字public :int salary; //工资void setName(char * name); void getName(char * name);void averageSalary(CEmployee e1,CEmployee e2); };void CEmployee::setName( char * name) {strcpy(szName, name); //ok } void CEmployee::getName( char * name) {strcpy(name, szName); //ok } void CEmployee::averageSalary(CEmployee e1,CEmployee e2){salary (e1.salary e2.salary )/2; }int main(){CEmployee e;// strcpy(e.szName,Tom1234567889); //编译错, 不能访问私有成员e.setName(Tom); // oke.salary 5000; //okreturn 0; }知识点扩充C语言中字符串之间的比较【char*】/【string】 2.6.2、private的意义隐藏的作用 设置私有成员的机制叫“隐藏”。“隐藏”的目的是强制对成员变量的访问一定要通过成员函数进行那么以后成员变量的类型等属性修改后字需要更改成员函数即可。否则所有直接访问成员变量的语句都需要修改。如果上面的程序移植到内存空间紧张的手持设备上希望将szName改为char szName[5]若szName不是私有那么就要找出所有类似strcpy(e.szName, Tom1234567889);这样的语句进行修改以防止数组越界。这样做很麻烦。如果将szName变为私有那么程序中就不可能出现除非在类的内部strcpy(e.szName, Tom1234567889);这样的语句所有对szName的访问都是通过成员函数来进行比如e.setName(Tom); 那么就算szName改短了上面的语句也不需要找出来修改只要改setName成员函数在里面确保不越界就可以了。 2.6.3、成员函数的重载及参数缺省 成员函数也可以重载成员函数可以带缺省参数案例如下 #include iostreamclass Location {private:int x, y;public:void init(int x 0, int y 0);// 两个valueX是函数重载关系void valueX(int val) { x val; }int valueX() { return x; } };int main() {Location A, B;A.init(5);A.valueX(6);std::cout A.valueX() ;return 0; }void Location::init(int x, int y) {x x;y y; }// OUT 6注意使用缺省参数需要注意避免有函数重载时的二义性 class Location {private:int x, y;public:void init(int x 0, int y 0);两个valueX是函数重载关系(这里存在二义性)void valueX(int val 0) { x val; }int valueX() { return x; } };int main() {Location A;A.valueX(); Error,编译起无法判断调用哪个valueXreturn 0; }
http://www.w-s-a.com/news/880124/

相关文章:

  • 外贸类网站酷玛网站建设
  • 合肥网站设计建设南宁网站seo推广优化公司
  • 临沂百度网站7x7x7x7x8黄全场免费
  • 海洋牧场网站建设大良网站设计价格
  • 手机端网站关键字排名北京seo公司哪家好
  • 福建建设培训中心网站网站建站服务公司地址
  • 青岛网站优化快速排名企业网址怎么整
  • 做公司网站用什么系统seo搜索排名优化方法
  • dw怎么做网站标题图标做网站重庆
  • 机场建设相关网站公司官网设计制作
  • 大学网站建设的目标技术支持 优府网络太原网站建设
  • wordpress设置密码访问带提示广州做网站优化哪家专业
  • 如何帮人做网站赚钱西安室内设计公司排名
  • 房产网站建设产品网站域名和邮箱域名
  • 网站建设核心优势seo求职信息
  • 网站手册自己在百度上可以做网站吗
  • 影楼网站源码建行业网站的必要性
  • 深圳app网站设计软件开发公司税收优惠政策
  • 北京市中关村有哪家可以做网站维护客户管理系统 wordpress
  • 做网站拉客户有效吗全景图网页制作工具
  • 网站建设公司行业建设网站需要提供什么资料
  • 别人的做网站网页打不开图片
  • 北京专业网站设计推荐怎么建立网站网址
  • 上海网站建设开发公司哪家好网站数据搬家
  • 杭州建站平台哪里有免费的网站推广软件
  • 深圳极速网站建设服务什么网站可以做产品入驻
  • 淄博易宝网站建设app推广拉新公司
  • 营销型外贸网站建设软件备案域名出租
  • 网站域名禁止续费m99ww094cn 苍井空做的网站
  • 上海建设工程网站大同网站建设熊掌号