C++学习日记(一)--类和对象

1.面对对象编程:

从用户的角度去思考,看一个东西的特征而不是一个一个步骤。我认为C++只是更加方便的实现了面向对象编程--利用类这个类型,实际上c语言也可以面向对象编程。只不过实现成本会高许多。

例如:c++实现一个面对对象的结构

class 猫 {

public:

        void 攻击();

private:

        int 速度;

        int 力量;

}

类 有点类似与结构体,但比结构体好用。可以试着用c语言实现上面的结构。(c语言的后续扩展能力没那么好)。

2.类的声明和定义

类的声明 class classname{};          这种语句是被允许的

类的定义:(该类被定义在Stock.h文件中)

class Stock{
private:
    const int Price;
    int insert_money;
    int total_money;
    int now_money;
public:
    //构造函数
    Stock();
    Stock(int price, int insert_money, int now_money);
    //析构函数
    ~Stock();

    //成员函数
    void show();
    void Add_money;
}

用c语言来实现这种结构:

//C language implementation

struct Stock{
//private
    static const int Price
    static int insert_money;
    static int total_money;
    static itn now_money;

 //public
    //初始化函数
    struct Stock (*P)(int,int,int );
    //函数指针调用show和Add_money
    void (*P)();
}

3.成员变量

成员变量通常是private,OOP编程应该将数据隐藏起来,向外只提供操作即成员函数

4.成员函数的定义

void Stock::show(void){

    cout<<"hello world"<<endl
}

注:常函数:void Stock::show(void)const;不会改变变量的值的函数

        常量:const int b;

        static int b;该成员变量属于类,

        static int b();

5.构造函数和析构函数

vs:0xcd+0xcd没有初始化,烫烫烫烫烫烫烫

一个对象在创建之初应该被初始化,不然其内容是不确定的

初始化:构造函数 classname();  没有返回类型

析构函数没有参数

析构函数什么时候会被调用,在之前还是在之后

两种初始化方法

列表初始化

Stock(int parameter = 1000):m_vari(vari){

}

定义的构造函数,如果定义对象的时候传参会使用参数值,否则使用default值

6.this指针:指向调用成员函数的对象,是对象的地址

场景:

构造函数为

class Stock{
public:
        A(int a, int data =100):b(data)}
            this->a = a;
        }
        ~A(){cout<<"byebye"<<endl;}
        void show(void) const
        {
            cout<<"a ="<< a <<endl;
            cout<<"b ="<< b <<endl;
        }

private:
        int a;
        const int b;
};

this指的是用类生成的对象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值