C++的类class
c++的类只是一个声明并不是定义,是declaration不是definition。
这种声明就像c中的int、char 、double、struct一样。
声明一个类:
class Person
{
private:
int age;
int height;
public:
void f();
};
而在声明这种Person的类中 age height是不存在的,因为这种类还没有定义一个对象,当定义了一个对象后Person a;
,这个对象a才会有age、height。着重理解声明与定义的区别就可以很好的分析C++的class。
C++的类与c的结构体区别
当有了Person这个类时,Person就是像c中的int、char一样,只有当真正赋予了这个类对象后才会有东西诞生。
像c中:int a;
一样。
有了int类型的a。
c++中自己可以定义自己想要的类型,并且在这个类型里不仅可以定义变量,还可以定义函数。
当让这个类有对象时,就像c中的struct a;
一样,用Person b;
。
此时这个b和在c语言中的a是两个不同的类型,b的功能更多,c中的a是int类型的只能赋值然后通过外界函数运算,而b中它是Person类型的,这个类型是我们自己所定义的,我们像要这个类型怎么样就可以怎么样,想要在这个类型给个f()的函数就可以定义个f()的函数。
C++这种类实质就是c的结构体里面可以定义函数,当要使用这个类的自己带的函数时就可以
b.f();
而在c中是不可以在结构体内定义函数的。
有人会说C和C++是两种不同的语言,其实这个说法是错误的,C++的本质还是c,只不过在c的基础上多了许多功能,定义一个类使用类中的函数达到目的其实完全可以通过c中定义个结构体,然后定义一个函数引用结构体指针,达到相同的目的。只不过C++显得更方便,毕竟是c的优化。