C++ 理解类 和 类中的public、protected、private
我们要明确,不只是C++有类,很多语言也会用到类,因为现在很多都是面向对象编程...
在c++中,关于类的理解,个人理解是这样的,具有共同属性的一个集合被称为类,
比如说人这个集合,具有性别,年龄,出生日期等属性,可以构成一个类的成员,除此此外,
如果这个类具有共同的技能的话,我们也可以把这种技能称之为共同的方法,常见的类的
修饰符有private即私有的成员修饰,public即修饰共同的成员,一般类可以看作是Java中的
一个包类中提供了数据表示即成员函数和操作数据的方法即成员函数如何使用的方法。
一般的话,类的规范说明由两个部分组成:
1、类的声明,即类的成员函数的声明,以成员函数的方式被称作公有接口
补充知识:接口慨念
接口就是一个共享的框架,主要由我们自己写的方法所提供
2、类的方法的定义,即如何实现类的成员函数
#define:
1.关键字public可以将类的成员说明为是公有的,及可以被该类的所有成员所访问;
2.关键字private可以将类的成员说明为是私有的,它不能直接被对象访问。
其实,说白了就是对于公有成员,我们可以利用对象来进行直接调用,比如说:
1 class Cat 2 3 { 4 5 public: 6 7 int weight; 8 9 }; 10 11 int main() 12 13 { 14 15 Cat cat;//声明一个对象 16 17 cat.weight=5; 18 19 cout<<"The cat's weight is "<<cat.weight<<endl; 20 21 return 0; 22 23 }
在上面这个程序中,由于Cat类中的成员函数weight被声明成了公有成员,那么我们就可以在主窗口中首先创建一个Cat类的对象(cat),并利用.运算符就可以直接调用weight这个数据成员了。
但是,值得注意的是,如果我们想要把上面程序中的public删除掉,改成private。那么这个时候,我们就无法在由Cat类所声明的对象中调用这个weight成员。这是,只有通过在类中设置一个公共的接口函数,才能实现对weight的访问,如下例:
1 class Cat 2 3 { 4 5 public: 6 7 void setWeight(int w){weight=w;}//设置重量 8 9 int print(){return weight;}//返回重量的大小 10 11 12 13 private: 14 15 int weight; 16 17 }; 18 19 int main() 20 21 { 22 23 Cat cat; 24 25 cat.setWeight(5);//设置cat的重量为5 26 27 cout<<"The cat's weight is "<<cat.print()<<endl; 28 29 return 0; 30 31 }
==================================总结========================================
在一般情况下,我们可以将类的数据成员设置为私有的,然后调用类中的公共该接口函数来访问他们。这样做的好处是将数据的赋值与读取分开操作。比如说上例里面,我们就将数据的赋值函数设置成setWeight(int),将数据的读取函数设置成print()。这样的好处就是赋值函数不需要考虑读取函数是如何工作的,读取函数中的代码改变也不会影响到相应的赋值函数。那么这样就提高了代码的可重用性。另外,由于将数据成员进行了私有化,那么各个对象不可以直接访问并修改数据。比如说上例中想要直接修改weight的数值就是不合法的,只有通过公共的接口函数才能访问并且修改到类里面的私有数据成员(weight)。
这样的设置时程序更容易维护,并且可避免一些不应有的错误。