类基础随笔

类和结构体

        结构体的默认访问类型是public,类的默认访问类型是private        

        通常使用类来实现类描述,结构限制为了存粹的表示数据类型        

内联方法

        1. 定义位于类声明的函数都将自动成为内联函数

class Stock
{

private:

    void set_tot() {……};

}

        2. 在类之外定义成员函数,使用inline使其成为内联函数

class Stock
{
private :

    void set_tot();

}

inline void Stock::set_tot()
{
   …….
}

存储问题

所创建的每个对象都有自己的存储空间,用于存储其内部变量和类成员;但同一个类的所有对象共享一组类当法。

构造函数和析构函数

        构造函数:专门用于构造新对象,将值赋给数据成员,程序声明对象时,将自动调用构造函数。

        注意点:

                1. 构造函数的参数名不能和类成员相同,通常在数据成员名前使用”m_”或者在数据成员名后加”_”.

                2. 当且仅当没有定义任何构造函数时,编译器才会提供默认构造函数。

                3. 为类定义构造函数后,就必须提供默认构造函数。

                4. 设计类是,通常应该提供所有对类成员做隐式初始化的默认构造函数。

        析构函数:程序过期时,完成清理工作的函数。析构函数的名称在类名前加~,没有参数。

        析构函数调用的时机:

                1.  静态存储类对象,程序结束时自动调用。

                2. 自动存储类队形,程序执行完代码块时自动调用。

                3. 用new创建的对象,使用delete释放内存时自动调用。

                4. 创建临时对象时,在结束对该对象使用时自动调用。

//.h 文件
class Flower
{
private:
    double m_num;
    int m_color;
    int m_val;
    void set_tot() {m_num = m_val * m_color;}
public:
    Flower(); //默认构造函数
    //构造函数名不能和数据成员名重复
    //定义了构造函数默认构造函数一定要有
    Flower(int color = 0, int val = 0);
    //析构函数
    ~Flower();
    void Buy(int color, int val);
    void Show();
};
//.cpp 文件 类方法具体实现
Flower::Flower()
{
    std::cout<< "默认构造函数初始化" <<std::endl;
    m_num = 0;
    m_color = 0;
    m_val = 0;
}

Flower::Flower(int color, int val)
{
    std::cout<< "自定义的构造函数初始化" <<std::endl;
    m_color = color;
    m_val = val;
    set_tot();
}

Flower::~Flower()
{
    std::cout<<"析构函数调用"<<std::endl;
}

void Flower::Buy(int color, int val)
{
    set_tot();

}

void Flower::Show()
{
    std::cout<<m_color<<"*"<<m_val<<"="<<m_num<<std::endl;
}
//.cpp文件 main
int main(){

    // 大括号为了让析构函数调用语句能打印 优先执行代码块
    {
        Flower flower2(2,3);
        flower2.Show();
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值