详解c++构造函数

      前面咱们介绍了c++做为一个面向对象的高级编程语言,知道了面向对象的特征。今天就开始正式的学习c++了。c++

         咱们知道,c++的核心就是把程序功能化,结构化,那么结构化,就必须有类。
编程

         一个类,里面有变量,有方法(函数)。类里边的变量,咱们称他为成员变量,函数就称为成员函数。
编程语言

        因为c++封装的特性,通常默认状况下,类里边的成员变量和成员方法都是private的也就是私有的,外部对象是没法访问的,这种状况下类就没有了任何做用,所以咱们通常把成员变量设为私有,把成员方法设为public  ,公有的成员方法也称做接口。
ide

        构造函数,和类名相同,无返回值,负责对成员变量初始化。函数

        访问函数,获得成员变量的值
学习

        设置函数,设置(修改)成员变量的值
spa

        析构函数,在释放对象的时候启用,以~开头,和类名相同。
对象

       通常状况下,就算咱们不写构造函数,系统也会给咱们添加一个构造函数,这个构造函数就叫作默认构造函数,他不对成员变量有任何操做。咱们写的构造函数会屏蔽系统的默认构造函数。可是构造函数是能够重载的。接口

        所谓重载,就是相同的函数名,不一样的参数列表,(变量类型不一样,或者变量个数不一样)
it

       默认构造函数分为两种,不带参数的构造函数,带参数的有默认值构造函数。

       不带参数的构造函数,这就是系统生成的构造函数同样,不对成员变量有任何操做。可是咱们声明了,系统就不会在生成默认构造函数。

        带参数的有默认值的构造函数,他能够包含不少状况,不带值的,带有一个值,或者更多值的。

class Thing 
{
private:
        int x,y;
public :
    //Thing(int a=0,int b=0);
    Thing ();
    Thing (int a,int b);
};
class Thing 
{
    Thing (){}//默认构造函数
    
    Thing (int a,)
    {
        x=a;
    }//重载的构造函数
    Thing (int a,int b)
    {
        x=a,y=b;
    }//带有默认值得构造函数
    //Thing (int a,int b); 这条语句和上面的语句不能同时存在,由于带默认值的构造参数包含了上面的状况,不复合重载的规则
}

      固然了,构造函数还有一个表达方式,就是初始化列表,以“:”开头后加成员变量(参数值)

如:

      

  Thing (int a,nt b):x(a),y(b)P{}

   在如下状况下必须用初始化列表:

                类中的const成员、类中的引用成员、父类中无默认构造函数,在子类中对父类成员初始化必须使用初始化列表。

       还有一个小知识点,就是 const 修饰的对象:

         在c语言中,咱们知道const 修饰的变量一经初始化就不能在改变了,那么在c++中,是怎么样呢?

         在c++中 全部内容分为两类,对象   const修饰对象              普通对象

                                                        成员      const修饰                  普通成员

                                                        方法     const修饰方法           非const方法

        其中,非const修饰的对象能够调用const成员函数也可调用普通成员函数

                       const对象只能调用const 成员函数

        const成员函数    只有只读权限,所以它不可能修改为员变量的值

在函数定义时三种方式:

一、        函数返回值是const引用,函数的返回值不能被修改(不能作左值)

二、          函数的参数是const引用 函数体内不能修改参数的值int func(constint &)

三、        函数修饰成员函数(只限于类的定义) int function(int)const;在该函数体内不能修改为员变量(经常使用与打印输出函数,保护权限)

const 修饰的函数:此函数只能是类成员函数

一、        不能在const成员函数中修改为员变量的值

二、        只有类的成员函数才能够被const修饰

三、        函数体内不能调用该函数的对象

四、        只有类成员函数才能够修饰为const成员函数

五、        const成员函数只能调用该类中的const成员函数

六、        在类中,类中的一个成员函数有const版本和非const版本

相关文章
相关标签/搜索