脚本宝典收集整理的这篇文章主要介绍了十五、类与封装的概念,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1、类的封装
C++中类的封装:
- 成员变量:C++中用于表示类属性的变量
- 成员函数:C++中用于表示类行为的函数
-
C++中可以给成员变量和成员函数定义访问级别
#include <stdio.h>
struct Biology
{
bool living;
};
struct Animal : Biology
{
bool movable;
void findFood()
{
}
};
struct Plant : Biology
{
bool growable;
};
struct Beast : Animal
{
void sleep()
{
}
};
struct Human : Animal
{
void sleep()
{
printf("I'm sleeping...n");
}
void work()
{
printf("I'm working...n");
}
};
struct Girl : Human
{
private:
int age;
int weight;
// private修饰两个属性,定义访问级别为私有
public:
void print()
{
age = 22;
weight = 48;
printf("I'm a girl, I'm %d years old.n", age);
printf("My weight is %d kg.n", weight);
}
};
struct Boy : Human
{
private:
int height;
int salary;
public:
int age;
int weight;
void print()
{
height = 175;
salary = 9000;
printf("I'm a boy, my height is %d cm.n", height);
printf("My salary is %d RMB.n", salary);
}
};
int main()
{
Girl g;
Boy b;
g.age = 20; // 编译不过
g.print(); // 通过print()去访问
b.age = 19; // ok
b.weight = 120;
b.height = 180; // err
b.print();
return 0;
}
2、类成员的作用域
类成员的作用域:
- 类成员的作用域都只在类的内部,外部无法直接访问
- 成员函数可以直接访问成员变量和调用成员函数
- 类的外部可以通过类变量访问
public
成员
- 类成员的作用域与访问级别没有关系
C++中用struct
定义的夫中所有成员默认为 public
#include <stdio.h>
int i = 1;
struct Test
{
private:
int i;
public:
int j;
int getI()
{
i = 3;
return i;
}
};
int main()
{
int i = 2;
Test test;
test.j = 4;
printf("i = %dn", i); // i = 2;
printf("::i = %dn", ::i); // ::i = 1; 访问默认命名空间,即全局作用域
// printf("test.i = %dn", test.i); // Error, test.i是私有的
printf("test.j = %dn", test.j); // test.j = 4
printf("test.getI() = %dn", test.getI()); // test.getI() = 3
return 0;
}
3、小结
类通常可以分为使用方式和内部细节两部分类的封裝机制使得使用方式和内部细节相分离
C++中通过定义类成员的访问级别实现封装机制
public成员可以在类的内部和外界访问和调用
private成员只能在类的内部被访问和调用
以上是脚本宝典为你收集整理的十五、类与封装的概念全部内容,希望文章能够帮你解决十五、类与封装的概念所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。