c~c++的基础知识

来源:互联网 发布:淘宝网店经营范围 编辑:程序博客网 时间:2024/05/29 14:03

1、string;

2、using namespace std;表示将标准库类中的名称加入可用名称系列;

3、vector数据类型:vector变量有名称,但元素没有名称,具有一个与其在vector中的位置相关的数;

   vector<short>weight(5);
      为访问Weight中的第三个元素,可使用表达式Weight[3];
4、区别自然类型和自定义类型:如果不需要#define头文件就能使用的就是自然类型。因此cin、cout均为自定义类型;

5、类和对象:

     1:构造函数:对象的建立过程类似于一个基本类型变量的初始化过程:在程序吃行过程中,当遇到对象声明语句时,程序会向操作系统申请一定的空间内存用于存放新建的对象。我们希望程序能像对待普通变量一样,在分配内存空间的同时将数据成员的初始值写入,但是因为喝普通变量相比,类的对象过于复杂,编译器不知道如何产生代码来实现初始化。构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态。

        构造函数的函数名与类名相同;

        构造函数没有返回值;

构造函数通常被申明为公有函数;

构造函数在对象被创建的时候将被自动调用。

     2:普通构造函数是在对象创建时被调用,而复制构造函数在以下3种情况下都会被调用:

(1)当用类的一个对象去初始化该类的另一个对象时:

Point a(1,2);Point b(a); //用对象a初始化对象b,拷贝构造函数被调用Point c=a;//用对象a初始化对象c,拷贝构造函数被调用
(2)如果函数的形参是类的对象,调用函数时,进行形参和实参结合时:

          tip:只有把对象用值传递时,才会调用复制构造函数,如果按引用传递,则不会调用复制构造函数。由于这一原因,按引用传递会比按值传递的效率高很多。

(3)如果函数的返回值是类的对象,函数执行完返回调用者时:

Point g(){   Point a(1,2);   return a;   //函数的返回值是类对象,返回函数值时,调用拷贝构造函数
}int main()[   Point b;   b=g();   return 0;}

      我们可以知道a是g()的局部函数,离开建立它的函数g以后就消亡了,不可能在返回主函数后继续生存。所以在处理这种情况时编译系统会在主函数中创建一个无名临时对象,该对象的生存期只在函数调用所处的表达式中,也就是表达式"b=g()"中。执行语句"return a;"时,实际上是调用拷贝构造函数将a的值复制到临时对象中。函数g运行结束时对象a消失,但临时对象会存在于表达式"b=g()"中。计算完这个表达式后,临时对象的使命也就完成了,该临时对象便自动消失。

3:类的组合:描述的就是一个类内嵌其他类的对象作为成员的情况,它们之间的关系是一宗包含与被包含的关系。









0 0
原创粉丝点击