• c++基础语法 构造函数 析构函数 类的组合


    1 构造函数

    1.不能指定任何返回值,甚至连void都不能有。

    2.与Java不同,c++不同new对象,对于无参的构造函数声明对象时括号应该省略。

    2 析构函数

    1. 前加~,不能有参数,不能有返回值。

    2.每个类内只能声明一个析构函数并且公有。

    3 类的组合

    #include <iostream.h>
    class A
    {
        public:
            A(int x)
            {
                cout<<"class A construing		"<<x<<endl;
            }
            ~A()
            {
                cout<<"class A destroy"<<endl;
            }
    };
    
    class B 
    {
       public:
            B()
            {
                cout<<"class B construing		"<<endl;
            }
    //可以利用这种方式初始化私有变量
            B(int x):b(x)
            {
                //b=x;
                cout<<"class B construing		"<<b<<endl;        
            }
            ~B()
            {
                cout<<"class B destroying"<<endl;
            }
        private:
            int b;
    };
    
    class C
    {
        public:
            C(int x,int y):a1(y)
            {
                cout<<"Class A with y ,C with xy construing, but B with nothing "<<x<<y<<endl;
            }
            C(int x,int a,int b);
            ~C()
            {
                cout<<"class C destroying"<<endl;
            }
            private:
                A a1;
                B b1;
    };
    
    C::C(int x,int a,int b):b1(b),a1(a)
    {
        cout<<"class A B C construing"<<x<<a<<b<<endl;  
    }
    
    int main()
    {
        C c1(2,3);
        C c2(4,5,6);
        return 0;
    }

    创建组合类时,将按内嵌对象在类中的声明先后顺序,而不是按成员初始化列表中的顺序,调用其相应的构造函数,最后调用该组合类的构造函数。

    析构函数的调用正好相反。

    定义构造函数时,才可以带有成员的初始化列表,如果仅是声明构造函数,不可以带成员初始化列表。

    必须指出成员初始化列表也可用于初始化类中的普通数据成员。

  • 相关阅读:
    squid代理缓存服务
    部署网络存储ISCSI
    电子邮局系统
    使用DHCP动态管理主机地址
    vsftp -samba-autofs
    python初学 | 循环for while
    python初学 | 条件语句if
    python初学 | set
    python初学 | 字典dictionary
    python初学 | 元组tuple
  • 原文地址:https://www.cnblogs.com/dongzhuangdian/p/5059868.html
Copyright © 2020-2023  润新知