C++入门学习:了解封装,类与结构体

A)封装,是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)合成一个整体,这在计算机世界中是用类与对象实现的。
B)封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
      备注:有2层含义(把属性和方法进行封装 , 对属性和方法进行访问控制)
      C++中类的封装
成员变量,C++中用于表示类属性的变量
成员函数,C++中用于表示类行为的函数

C++中提供一个新的关键字 class, 用来定义类,使用方式和struct基本相同

类的访问控制关键字:对属性和方法的使用权限进行限制
public (公有属性): 可以在类的内部和类的外部访问
private(私有属性) : 可以在类的内部但不能在类的外部访问

protect(保护属性):可以在类的内部访问,但不能在类的外部访问

类所占空间大小的计算方式与结构体一样(忽略类内部的函数,函数放在代码段中)

类的默认属性是私有属性,结构体的默认属性是公有属性。

使用类的公有成员和结构体一样

class Student
{
public:
void setID(int _id)
{
id = _id;
}
void setName(char *_name)
{
name = _name;
}
void show()
{
printf("id = %d, name =  %s\n", id, name);
}
//获取私有变量
char *getName()
{
return name;
}
private:
int id;
char *name;
};

int main()
{
//定义一个类的变量 我们将这个变量叫做 该类的一个对象

Student s, s1, s2;

//为类的私有成员赋值需要一个公有内部函数进行操作
        s.setID(1);
s.setName("笑笑");
s.show();

s1.setID(2);
s1.setName("西卡");
s1.show();

s2.setID(3);
s2.setName("斯蒂芬");
s2.show();

printf("s1 名字是:%s\n", s1.getName());

return 0;
}
类的使用规范:
类的声明和类的实现要分开,类的声明放在头文件中,类的实现放在源文件中

eg:

头文件

#ifndef __STUDENT_H__
#define __STUDENT_H__
// 类的声明
class Student
{
public:
        //内部函数只需在类中写函数的声明,
void init(int id, char *name);
private:
int _id;
char *_name;
};

#endif // __STUDENT_H__

Student源文件

#include "Student.h"

//需要表明 init 函数是 类Student 中的函数:   init(函数名)前加上  类名 和 域解析符::

void Student::init(int id, char *name)
{
_id   = id;
_name = name;
}

main函数文件

#include <iostream>
#include "Student.h"

using namespace std;
int main()
{
    Student s;
    return 0;
}
————————————————
版权声明:本文为CSDN博主「Fizz_沫烨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41093451/article/details/79547426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值