锋行_THU_SJTU

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1. 类与对象

类的声明与结构,数据成员和成员函数。

成员函数可以在类外被定义。但是必须在类内声明。

封装:protect——允许类成员和派生类成员访问。

构造函数之外,还有一种初始化类成员的方法:参数初始化表。(待补充)

声明带参数的构造函数,除了传递实参之外,也可以制定默认值。

析构函数是在对象生命周期结束时自动执行的。

class ClassText {
public:
    ClassText() {
        a = 0;
        b = 0;
    }
    ClassText(int a,int b);
    int sum() {
        return a+b;
    }
    ~ClassText() {
        cout<<"goodbye"<<endl;
    }

private:
    int a, b;
};

ClassText::ClassText(int a, int b) {
    this->a = a;
    this->b = b;
}

int main() {
    ClassText ct1 = ClassText();
    cout<<ct1.sum()<<endl;
    ClassText ct2 = ClassText(1,2);
    cout<<ct2.sum()<<endl;

    return 0;
}

上面例子大概覆盖了前面提到的点。不过默认值尝试了一下,有点问题…………

输出结果为:

0
3
goodbye
goodbye

静态参数,类和派生类也共享同一个静态参数。(java也是这样么?)

静态函数没有this指针,非静态函数有this指针。

this指针,基本上当java的this用,区别就在于这里是指针,用->访问成员参数。

类模板,跟函数模版差不多,声明方法如下:

template<class T>
class Operate{
...
}

一般情况下,析构函数和构造函数的调用顺序正好相反。(何时调用析构函数待补充)

类的继承,在访问属性上,就高不就低。private>protect>public

虚函数主要是为了利用指针来调用基类中的方法。(详细的内容待补充)

纯虚函数可以理解成是java中的接口。

posted on 2018-06-01 01:55  锋行_THU_SJTU  阅读(93)  评论(0编辑  收藏  举报