我们知道C语言是面向过程语言,C++是面向对象语言。
例如:吃狗屎就是面向过程,狗吃屎就是面向对象。
而类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量,创建对象的过程叫做类的实例化,即对象是一个类的实例。类不占用内存空间,而对象是一个实例,因此对象占用内存空间。
类的一般定义方法如下:
class+类名
{
public:
成员函数或变量
};
一个具体例子如下:
#include<iostream>
using namespace std;
class student
{
public:
const char* name;
int age;
public:
void show();
/*{
cout << name << age << endl;//可在内也可在外,大多数类外
}*/
};
void student::show()//在类外声明时要有作用域
{
cout << name << age << endl;
}
int main()
{
student stu;//在栈区
stu.name = "小明";
stu.age = 18;
stu.show();
student* pstu = new student;//在堆区
pstu->name = "小强";
pstu->age = 17;
pstu->show();
return 0;
}
你应该有注意到public(公共的)吧,它是访问修饰符的一个,除此之外还有protected(受保护的),private(私有的)。他们是用来控制成员变量和成员函数的访问权限的,即你能否使用该类中的成员。
他们的区别如下:
public:类内类外皆可访问
protected:类内能类外不能
private:类内能类外不能
#include<iostream>
using namespace std;
class AA
{
public:
int a;
protected:
int b;
private:
int c;
public:
void show()
{
cout << a << " " << b << " " << c << endl;
}
};
//类的默认访问修饰符为私有的
int main()
{
AA aa;
aa.a = 100;
//aa.b = 200;不行
//aa.c = 300;不行
aa.show();
return 0;
}
当我们没有规定访问权限时,类的默认访问修饰符时private,而结构体的默认访问修饰符时public
类比结构体更安全。