欢迎来到天天文库
浏览记录
ID:8805281
大小:199.00 KB
页数:23页
时间:2018-04-08
《vcc程序设计学习总结与心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VC/C++程序设计学习笔记与心得1、const的基本用法1.1保护被限制的常量,如:constinta=3;/*a=4;——错误1*/不能修改由const修饰的变量的值,且必须被初始化!1.2便于进行类型检查,如:const_test(constconst_test&a){property1=a.property1;property2=a.property2;/*a.property1=3;——错误2*///保护引用的参数,防止意外的修改}进行函数参数的保护和提醒1.3为函数重载提供参考,如:voidprint()//print1{cout<<1<2、arprint()const//print2{cout<<2<3、二个const限定不能改变指针所指的对象1.6修饰引用,如:constint&bb=b;b=2;//ok//bb=2;//error引用的对象默认就不可以修改,再加上第一个const之后,也不能通过本引用名对其进行修改1.7修饰类的数据成员必须在初始化列表中进行初始化或者在类外进行初始化,不能在构造函数的大括号里面进行初始化2、面向对象与面向过程面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤4、中的行为。面向对象程序的基本特点:抽象、封装、继承、多态。面向对象的优点: 1结构清晰。使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。2封装性。减小外部对内部的影响。封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。3容易扩展,代码重用率高。容易扩展,在大框架不变的情况下很容易就开发出适合自己的功能,实现简单,可有效地减少程序的维护工作量,软件开发效率高。面向过程的优点:易于经常以只读的方式读取数据3、构造函数和析构函数构造5、函数作用:在对象被创建时利用特定的值创建对象,将对象初始化一个固定的状态。构造函数在创建时被自动调用。编译器会自动生成无参数的构造函数,但是一旦你定义了自己的构造函数,系统默认构造函数将失效拷贝构造函数作用:使用已经存在的一个对象,去初始化一个同类的新对象拷贝构造函数调用的三种情况:1、类对象作为函数的返回值,执行完成返回时2、类对象作为函数的形参与实参结合时3、用类对象对另一个类对象进行赋值或初始化析构函数作用:完成对象被删除前的清理工作,释放对象所占有的内存。析构函数在对象生存期即将结束时被自动调用,且不接受任何参数构造函数调用顺序:按声明的继承顺序,然后时定义类6、成员实例的顺序。类内嵌则先调用内嵌对象的构造函数,然后调用本类析构函数调用顺序与其相反深拷贝和浅拷贝:若自动调用默认的拷贝构造函数是浅拷贝,与被拷贝对象共用内存若想有独立内存,必须进行深拷贝,相当于利用被拷贝对象的成员变量值重新进行构造,如:CmcArrayOfPoint2::CmcArrayOfPoint2(constCmcArrayOfPoint2&array){cout<<"CmcArrayOfPoint2的拷贝构造函数被调用!"<m_n_num=array.m_n_num;this->point_ptr=newCmcPoint[arra7、y.m_n_num];for(inti=0;i<=this->m_n_num-1;i++)this->get_point(i).set_xy(array.get_point(i).get_x(),array.get_point(i).get_y());}前向引用声明总结:1、不能调用没有实现的类2、可以以形参形式在内联函数中使用,但不能用于类内实现3、不能在实现前涉及该类的任何细节4、指针与引用指针本身为unsignedlongint类型const在前为指向常量的指针,const在*后为指针类型的常量不能声明void的类型的变量,但是可以声明使用vo
2、arprint()const//print2{cout<<2<3、二个const限定不能改变指针所指的对象1.6修饰引用,如:constint&bb=b;b=2;//ok//bb=2;//error引用的对象默认就不可以修改,再加上第一个const之后,也不能通过本引用名对其进行修改1.7修饰类的数据成员必须在初始化列表中进行初始化或者在类外进行初始化,不能在构造函数的大括号里面进行初始化2、面向对象与面向过程面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤4、中的行为。面向对象程序的基本特点:抽象、封装、继承、多态。面向对象的优点: 1结构清晰。使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。2封装性。减小外部对内部的影响。封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。3容易扩展,代码重用率高。容易扩展,在大框架不变的情况下很容易就开发出适合自己的功能,实现简单,可有效地减少程序的维护工作量,软件开发效率高。面向过程的优点:易于经常以只读的方式读取数据3、构造函数和析构函数构造5、函数作用:在对象被创建时利用特定的值创建对象,将对象初始化一个固定的状态。构造函数在创建时被自动调用。编译器会自动生成无参数的构造函数,但是一旦你定义了自己的构造函数,系统默认构造函数将失效拷贝构造函数作用:使用已经存在的一个对象,去初始化一个同类的新对象拷贝构造函数调用的三种情况:1、类对象作为函数的返回值,执行完成返回时2、类对象作为函数的形参与实参结合时3、用类对象对另一个类对象进行赋值或初始化析构函数作用:完成对象被删除前的清理工作,释放对象所占有的内存。析构函数在对象生存期即将结束时被自动调用,且不接受任何参数构造函数调用顺序:按声明的继承顺序,然后时定义类6、成员实例的顺序。类内嵌则先调用内嵌对象的构造函数,然后调用本类析构函数调用顺序与其相反深拷贝和浅拷贝:若自动调用默认的拷贝构造函数是浅拷贝,与被拷贝对象共用内存若想有独立内存,必须进行深拷贝,相当于利用被拷贝对象的成员变量值重新进行构造,如:CmcArrayOfPoint2::CmcArrayOfPoint2(constCmcArrayOfPoint2&array){cout<<"CmcArrayOfPoint2的拷贝构造函数被调用!"<m_n_num=array.m_n_num;this->point_ptr=newCmcPoint[arra7、y.m_n_num];for(inti=0;i<=this->m_n_num-1;i++)this->get_point(i).set_xy(array.get_point(i).get_x(),array.get_point(i).get_y());}前向引用声明总结:1、不能调用没有实现的类2、可以以形参形式在内联函数中使用,但不能用于类内实现3、不能在实现前涉及该类的任何细节4、指针与引用指针本身为unsignedlongint类型const在前为指向常量的指针,const在*后为指针类型的常量不能声明void的类型的变量,但是可以声明使用vo
3、二个const限定不能改变指针所指的对象1.6修饰引用,如:constint&bb=b;b=2;//ok//bb=2;//error引用的对象默认就不可以修改,再加上第一个const之后,也不能通过本引用名对其进行修改1.7修饰类的数据成员必须在初始化列表中进行初始化或者在类外进行初始化,不能在构造函数的大括号里面进行初始化2、面向对象与面向过程面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤
4、中的行为。面向对象程序的基本特点:抽象、封装、继承、多态。面向对象的优点: 1结构清晰。使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。2封装性。减小外部对内部的影响。封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。3容易扩展,代码重用率高。容易扩展,在大框架不变的情况下很容易就开发出适合自己的功能,实现简单,可有效地减少程序的维护工作量,软件开发效率高。面向过程的优点:易于经常以只读的方式读取数据3、构造函数和析构函数构造
5、函数作用:在对象被创建时利用特定的值创建对象,将对象初始化一个固定的状态。构造函数在创建时被自动调用。编译器会自动生成无参数的构造函数,但是一旦你定义了自己的构造函数,系统默认构造函数将失效拷贝构造函数作用:使用已经存在的一个对象,去初始化一个同类的新对象拷贝构造函数调用的三种情况:1、类对象作为函数的返回值,执行完成返回时2、类对象作为函数的形参与实参结合时3、用类对象对另一个类对象进行赋值或初始化析构函数作用:完成对象被删除前的清理工作,释放对象所占有的内存。析构函数在对象生存期即将结束时被自动调用,且不接受任何参数构造函数调用顺序:按声明的继承顺序,然后时定义类
6、成员实例的顺序。类内嵌则先调用内嵌对象的构造函数,然后调用本类析构函数调用顺序与其相反深拷贝和浅拷贝:若自动调用默认的拷贝构造函数是浅拷贝,与被拷贝对象共用内存若想有独立内存,必须进行深拷贝,相当于利用被拷贝对象的成员变量值重新进行构造,如:CmcArrayOfPoint2::CmcArrayOfPoint2(constCmcArrayOfPoint2&array){cout<<"CmcArrayOfPoint2的拷贝构造函数被调用!"<m_n_num=array.m_n_num;this->point_ptr=newCmcPoint[arra
7、y.m_n_num];for(inti=0;i<=this->m_n_num-1;i++)this->get_point(i).set_xy(array.get_point(i).get_x(),array.get_point(i).get_y());}前向引用声明总结:1、不能调用没有实现的类2、可以以形参形式在内联函数中使用,但不能用于类内实现3、不能在实现前涉及该类的任何细节4、指针与引用指针本身为unsignedlongint类型const在前为指向常量的指针,const在*后为指针类型的常量不能声明void的类型的变量,但是可以声明使用vo
此文档下载收益归作者所有