Java中知道对数据的封装,比如一个方法来封装一个小功能,并且给指定的权限让其他的类或者方法调用,看了C++发现也有数据封装性,看看Java和C++数据封装性是否有区别。
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
struct Student
{
private:
int names,ages;
public:
void setNameandAge(int name,int age)
{
names=name;
ages=age;
}
void display()
{
cout <<"成员数据的封装"<<"name"<<names<<"age:::"<<ages<<endl;
}
};
int main(int argc, char** argv)
{
Student stu;
stu.setNameandAge(34,66);
stu.display();
// cout <<stu.age<<endl;
return 0;
}
以上是小例子对结构块封装了,结构块的names和age是私有的所以其他函数是不能调用的,我在main方法中调用是就会编译错误错误信息为:[Error] 'struct Student' has no member named 'age'意思是Student结构块中没有names和ages的成员,说明达到了我们的封装性。不过在调试中发现了一个和Java不同的地方看,Java中静态的方法直接可以用类名调用的但是在结构块中公用的成员数据可以直接调用或者赋值,但是不能用结构名称直接调用结构块中的公共的函数,不知道为什么以后弄明白了再来记录下来,还有在测试小例子是可以把main函数中的注释部分打开测试下看看能否调用结构的私有成员数据...