C++类和对象

本文详细介绍了C++中的类和对象,包括类的属性(public、protected、private)、内联函数、成员函数的实现、对象的创建及访问权限。同时,讨论了C++中的封装、继承和多态特性,以及this指针的使用和作用。还展示了如何定义和使用类的方法,并给出了实例代码。
摘要由CSDN通过智能技术生成

#include <iostream>
using namespace std;
//inline内联函数,在类内部的函数称作是内联函数

//  类    C++的特点:抽象 封装 继承 多态
class CGoods
{
    /*C++中成员的三个属性
public:
protected:
private://若不写一般默认为私有

C语言struct与C++ class的唯一区别:struct默认成员属性为公有  class默认属性为私有
*/
public:
    void RegisterGoods(char* name, int count, float price)
    {
        strcpy(name, name);
        count = c;
        price = p;
    }
    void GetName(char* name)
    {
        strcpy(name, m_name);

}
    int GetCout()
    {
        return m_count;
    }
private:
    char m_name[10];
    int m_count;
    float m_price;
    float m_total_price;

};
//当类里面的函数放在类外实现时,需要加上作用域
void CGood::RegisterGoods(char* name, int count, float price)
{
    strcpy(m_name, name);
    m_count = count;
    m_price = price;
}
void main()
{
    CGoods c;
}
/*
class 类
属性public  protected private
类的私有和保护属性不可以直接访问
方法+数据
方法的实现可以放在类内部也可以放在类的外部实现
class classname{
//类体:由成员函数和成员变量组成
};//注意括号外面加上分号
class为定义的关键字,classname为类的名字{}为类的主体
类中的元素称为类的成员,类中的数据称为类的属性或成员变量,类中的函数称为类的方法或者成员函数。
在.h里面声明类的 在.cpp里面定义类的实现
访问限定符的说明
public修饰的成员在类外可以直接访问、
protected和private修饰的成员在类外不可以直接访问

类的作用域:类定义了一个新的作用域,类所有的成员都在类的作用域中。在类外定义的成员需要使用::作用域标识符指明成员属于哪一个域
分配实际的内存空间来存储它
一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量
类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有

c语言不支持空结构体,从c++支持空结构体,所占字节为1字节

*/
//所占空间大小
class Test
{
public:
    void SetData(int data)
    {
        m_data = data;
    }
    int GetData()const//常方法
    {
        return m_data;  
    }
    char m_data0;//1+3
        int m_data;//4
    int m_data;//4       该结构体共占12个字节
    /*
    char m_data0;//1+7
    double m_double;//8
    int m_datal;//4+4


    成员对象只保存自己的成员变量,成员函数存放在公共的代码段
    结论:一个类的大小,实际上就是类中成员变量之和,当然也要进行内存对齐,注意空类的大小为1
    this指针指向当前对象
    */

//日期类
    class Date
    {
    public:
        void Display()
        {
            cout << _year << "-" << _month << "-" << _day << endl;

        }
        void SetDate(int year, int month, int day)
        {
            _year = year;
            _month = month;
            _day = day;

        }
    private:
        int _year;
        int_month;
        int_day;
    };
    /*
    c++中通过引入this指针解决问题,C++给每个"非静态的成员函数"增加了一个隐藏的指针参数,让该指针指向当前对象
    (函数运行时调用该函数对象)在函数体中所有成员变量的操作,都是通过该指针去访问
    this指针的属性
    1.this指针类型:*const;
    2.只能在成员函数的内部使用
    this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象的地址传递给this形参

    
    */
};

class Test()
    {
    public:
    //下面两个函数可以同时存在,因为函数的参数不一样
        //Test*const this
        void fun()
        {}
        //const Test*const this
        void fun()const
        {}

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值