zoukankan      html  css  js  c++  java
  • 标准C++(2)

    一、类

    C++是一种面向对象的语言,它在C语言的基础上添加了一种新的数据结构,类 ——class

    class是一种复合型的数据结构

    它能够由不同类型的变量及函数组成

    C++中的class与struct几乎没有区别

    唯一的区别是class里的成员的默认属性是private(私有的) ,而struct里的成员默认属性是public (公共的)

    class Person
    {
        char name[20];
        int age;
    public:
        void show(void)
        {
             cout << "name:" <<name << " age: " << age <<endl; 
        }  
    };

    二、类的构造函数

    在创建类的实例时,会自动执行类的构造函数,构造函数没有返回值,且构造函数的名字要与类名一致,没有手动定义构造函数时,编译器会自动定义一个无参的构造函数,通常会程序员会定义类的构造函数来进行初始化、分配资源、设置对象的初始状态。使用new申请内存时,会自动调用构造函数。

    构造函数能够被重载,同时,构造函数的参数能够有默认值,调用的构造函数不存在时可能会造成编译错误

    class Student
    {
        int id;
        int age ;
        char sex;
    public :
        Student(void)
        {
            id =0;
        }
        Student(int _age)
        {
            age = _age;
        }
        Student(char sex,int id = 0)
        {
            
        }
    };

    三、类的析构函数

    当对象被销毁时会自动调用它的析构函数,对象的整个生命周期中只能被调用一次,它是对象被销毁前的最后执行的动作。析构函数不能被重载,没有返回值,没有参数。如果没有定义析构函数编译器会默认产生一个析构函数,使用delete释放内存时会自动调用析构 函数。

    析构函数的定义

    ~类名(void)

    {

    }

    class Student
    {
        int id;
        int age ;
        char sex;
    public :
        ~Student(void)
        {
        }
    };

    四、初始化列表

    写在构造函数后,是一种成员的初始化方式,通常用来初始化 const 属性的成员

    语法如下

    类名(参数...):成员1(参数1),成员2(参数2)

    {

    }

    【例】:

    class Student
    {
        const int id;
        int age ;
        const char sex;
    public :
        ~Student(int age,int _id,char _sex):id(_id),sex(_sex)
        {
            this->age = age
        }
    };

    五、this指针

    相同类的对象各自拥有独立的成员实例,但彼此共享一份成员函数(成员函数只有一份)

    当一个对象调用了一个它的成员函数(非静态static的)时,编译器会自动为该函数传递一个指向该对象的指针this,成员函数由此能够知道被哪个对象调用了

    类中的所有成员函数都有this指针,包括构造、析构、拷贝构造等。
      只是构造中this指向的是正在被创建的对象。

    如果成员函数是属性是静态(static)的,那么该函数就属于这一个类,可以通过 类名::函数名(参数) 调用,因此静态成员函数没有this指针,无法通过this来访问成员实例。

  • 相关阅读:
    关于NSDictionary的一点感悟
    (转)UITableView使用详解 相当详细,不错的东东
    UITextField的总结
    警告框(AlertView)与进度轮结合使用
    [转]自定义UITableView各种函数
    UISegmentedControl的所有操作总结
    英特尔多核平台编程优化大赛报告
    Makefile完全解析PART1.入门
    Makefile完全解析PART3.书写规则
    Makefile完全解析PART2.原理
  • 原文地址:https://www.cnblogs.com/unjack/p/9450374.html
Copyright © 2011-2022 走看看