昨天分享了面向对象里面的类和对象的基本概念,今天我们继续来分享c++里面的类里面的其它用法。(每天积累一点点,日积月累你也是专家!)。
类的封装
1、在C++中,当我们使用类的时候,我们首先要注意类的实现细节和类的使用方式(也就是说我们在做任何事情前,先要考虑好事情的大局观甚至加一些要注意的细节问题,不然一拿到一件事情,没有方向性的去做事情,往往最终结果会适得其反!):
2、封装的基本概念:
对于类来说,类的每一个属性并不是都对外开放的——就好比来说,女孩子不希望外人知道她的体重和年龄,男孩子不希望外人知道他的身高和实际收入一样。
然而对类来说,它的一些属性是可以对外开放的——想必在学校读书的时候,如果大家注意看学校光荣榜的话,你会发现光荣榜上每一个获得荣誉的人,都会介绍他(她)的姓名和所学专业以及出生地等等信息。
最后我们要注意的是,必须在类的表示法中定义属性和行为的公开级别(类似于文件系统中文件的权限)。
3、C++中类的封装:
——成员变量:C++中用于表示属性的变量。
——成员函数:C++中用于表示类行为的函数。
——C++中可以给成员变量和成员函数定义定义访问级别:
#include <stdio.h>
struct Gril
{
private:
int age;
int weigth;
public:
void print()
{
age=24;
weigth=55;
printf("I'm a gril,I'm %d years old!\n",age);
printf("My weiht is %d kg!\n",weigth);
}
};
struct Boy
{
private:
int height;
int salary;
public:
int age;
int weigth;
void print()
{
height = 175;
salary = 9000;
printf("I'm a boy,my helight is %d cm!\n",height);
printf("My salary is %d RMB!\n",salary);
}
};
int main(void)
{
Gril g;
Boy b;
g.print();
b.age=24;
b.weigth=120;
//b.height=190;
b.print();
return 0;
}
演示结果:
I'm a gril,I'm 24 years old!
My weiht is 55 kg!
I'm a boy,my helight is 175 cm!
My salary is 9000 RMB!
如果我调用b.height的话,它会报下面这样的错误(编译器在告诉程序员这个成员变量是私用有的,外部不能够再去调用它):
Error:int Boy::height is private
4、类成员的作用域:
#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 = %d\n", i); // i = 2;
printf("::i = %d\n", ::i); // ::i = 1;
// printf("test.i = %d\n", test.i); // Error
printf("test.j = %d\n", test.j); // test.j = 4
printf("test.getI() = %d\n", test.getI()); // test.getI() = 3
return 0;
}
演示结果:
i = 2
::i = 1
test.j = 4
test.getI() = 3
这里的话,有一个符号如果初学者看到的话不认识,"::"表示作用域操作符,这里"::i"表示默认的命名空间的使用(关于命名空间的介绍,明天的文章把这个命名空间的基础来介绍完)。 总结
------好了,今天的分享就到这里了,晚安!在看的朋友给个看,多谢!