C++中class与struct的区别?
- 如果没有标明成员函数或者成员变量的访问权限级别,那么在struct中默认的是public,而在class中默认的是private。
相关知识点:
- 结构体是C语言的一种自定义的数据类型,在结构体中可以含有各种不同类型的数据。C++语言对结构体类型进行了扩充,它不仅可以含有不同类型的数据,而且还可以含有函数。
struct Complex{ // 声明了一个名为Complex的结构体
double real; // 复数的实部
double imag; // 复数的虚部
void init(double r,double i){ // 定义函数init,给real和imag赋初值
real=r;
imag=i;
}
double abscomplex(){ // 定义函数abscomplex,求复数的绝对值
double t;
t=real*real+imag*imag;
return sqrt(t);
}
};
- C++规定,在默认情况下(即没有指定属于私有或公有时),类中的成员是私有的。C++结构体中的成员同样可以分为私有成员和公有成员,但是在默认情况下,结构体中的成员是公有的。
- 为了保护类中数据的安全,在C++中将类中的成员分为三类:私有成员(用private声明)、公有成员(用public声明)和保护成员(用protected声明)。私有成员(包括数据成员成员函数)只能被类内的成员函数访问,而不能被类外的对象访问;公有成员(包括数据员和成员函数)既可被类内的成员函数访问,也可被类外的对象访问;保护成员可以由本类的成员函数访问,也可以由本类的派生类的成员函数访问,而类外的任何访问都是非法的。