封装
在C中使用struct封装,这样不仅知道接口,又能访问内部数据,达不到信息隐藏的能力,随便来个人就可以访问了。
而在C++中可以指定属性或方法的访问方式,对内开发数据,对外排斥。这也是面向对象的优势所在。
在++中的class中至少提供两个函数,构造函数和析构函数
举个例子
#include <iostream>
using namespace std;
class A{
private :
int aa;
public:
A(int a):aa(a){}
~A();
void dis(){
cout<<"aa is"<<aa<<endl;
};
int main()
{
A a(15);
a.dis();
return 0;
}
如果调用aa就会发现无法访问
拷贝构造函数
在c++中想要用已存在的对象创建一个新对象,不由构造器,有一套固定的公式。那么一定有小伙伴问了,我为什么不用构造器。这里要明确系统提供的拷贝构造器就是所谓的浅拷贝(你变我也变)。 要实现深拷贝(你变我不变),必须要自定义。
class 类名 {
类名(const 类名 & another)
}
const修饰符和static修饰符
const标识成员常量,无法修改,只能在定义时赋值
static是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用