• 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)


    类的成员简介 

    在C++中,可以通过声明一个类来穿件一种新的类型。类将一组变量(他们的类型通常不同)和一组相关的函数组合在一起。类可以有各种类型的变量组成,还可以包含其他类对象。成员变量称为数据成员它们是类中变量。

       成员变量也叫数据成员,他们是类中的变量。成员变量是类的组成部分 。类还可以包含函数,它们被称为成员函数或者方法。成员函数和成员变量一样,是类的重要组成部分,它们决定了类的功能。类的成员函数通常操作成员变量。

       下面就来看代码吧

    /*
     *class.cpp
     *Date : 2013-9-20
     *Author: sjin
     *Mail:413977243@qq.com
     */
    #include <iostream>
    using namespace std;
    
    /*声明一个cat类
     * public private 修饰类的数据成员或方法成员
     * private:只能在类的方法中访问
     * public:可以通过类的任何对象进行访问
     * 默认情况下所有类型的成员都是私有的
     * 构造函数:constructor 创建并初始化类成员
     * 析构函数:destructor  对象被销毁后完成清理工作并释放分配的内存单元
     * 注意:一定要使用构造函数来初始化对象,添加构造函数后,一定要添加一个析构函数
     *      不要让构造函数和析构函数有返回值,不要让析构函数有参数
     */
    class Cat {
    private:
        int itsAge; //数据成员
    public:
        Cat(int age); //构造函数
        ~Cat();//析构函数
        int GetAge() const; //方法成员const  表明类成员不能被修改
        void SetAge(int age);
        void Meow();
    };
    
    /*构造函数*/
    Cat::Cat(int age)
    {
        itsAge = age;
    }
    
    Cat::~Cat()
    {
        cout << "something will cout" << endl;
    }
        
    
    /*析构函数*/
    
    /*获得猫的年龄*/
    int Cat::GetAge() const
    {
        return itsAge;
    }
    
    /*设置类的名字*/
    void Cat::SetAge(int age)
    {
        itsAge = age;
    }
    
    void Cat::Meow()
    {
        cout << "cat speak miao miao ...." << endl;
    }
    
    int main()
    {
        Cat Frisky(10); //定义一个cat类
        cout << "Frisky.itsAge :" << Frisky.GetAge() << endl;
        Frisky.SetAge(5);
        cout << "SetAge(5)  Frisky.itsAge :" << Frisky.GetAge() << endl;
        Frisky.Meow();
    
        return 0;
    }
    


    通过上面的代码我们可以学习到:

    声明一个cat类
     * public private 修饰类的数据成员或方法成员
     * private:只能在类的方法中访问
     * public:可以通过类的任何对象进行访问
     * 默认情况下所有类型的成员都是私有的
     * 构造函数:constructor 创建并初始化类成员
     * 析构函数:destructor  对象被销毁后完成清理工作并释放分配的内存单元
     * 注意:一定要使用构造函数来初始化对象,添加构造函数后,一定要添加一个析构函数
     *      不要让构造函数和析构函数有返回值,不要让析构函数有参数
    

    内联实现

        就像可以请求编译器将常规函数作为内联一个,也可以将类的方法作为内联,为此只需要在返回值类型前面加个关键字inline。比如下面: 

    inline int Cat::GetAge() const
    {
        return itsAge;
    }

    也可以将函数的定义放到声明中,函数将自动成为内联。如下:

    class Cat {
    private:
        int itsAge; //数据成员
    public:
        int GetAge() const{return itsAge;} //inline
    }
    也可以这么写:
    class Cat {
    private:
        int itsAge; //数据成员
    public:
        int GetAge() const
        {
              return itsAge;
         } //inline。注意这里没有分号
    }


  • 相关阅读:
    HDU 4611 Balls Rearrangement 数学
    Educational Codeforces Round 11 D. Number of Parallelograms 暴力
    Knockout.Js官网学习(简介)
    Entity Framework 关系约束配置
    Entity Framework Fluent API
    Entity Framework DataAnnotations
    Entity Framework 系统约定配置
    Entity Framework 自动生成CodeFirst代码
    Entity Framework CodeFirst数据迁移
    Entity Framework CodeFirst尝试
  • 原文地址:https://www.cnblogs.com/james1207/p/3331418.html
Copyright © 2020-2023  润新知