(C++)类与对象——封装
2020-08-05 16:52
936 查看
封装的基础与意义
1.类的创建与调用
#include "iostream" using namespace std; const double PI = 3.14; class Circle { public: //属性 int radius; //行为 double calculateZC() { return 2 * PI * radius; } }; int main() { //创建一个具体的圆 //实例化 Circle c1; c1.radius = 10; cout << c1.calculateZC() <<endl; system ("pause"); return 0 ; }
类的案例:学生类的创建
#include <string> #include "iostream" using namespace std; const double PI = 3.14; class Student { public: //属性 string name; int number; //行为 void printName() { cout << name <<endl; } void printNumber() { cout << number <<endl; } //通过函数给姓名赋值 void setName(string Name) { name = Name; } void setNumber(int Number) { number = Number; } }; int main() { //实例化 Student s1; s1.setName("xxx"); s1.setNumber(111); s1.printName(); s1.printNumber(); system ("pause"); return 0 ; }
封装的意义
封装是C++中面向对象的三大特性之一。
1.属性与行为
将属性和行为作为一个整体,用来表现生活中的事物。
2.权限
设计类时,将属性和行为放在不同的权限下,加以控制。
访问权限有三种:
public(公共权限) | 成员类内外都可以访问 |
---|---|
protected(保护权限) | 成员类内可以访问 类外不可以访问 子类可以访问 |
private(私有权限) | 成员类内可以访问 类外不可以访问 |
#include <string> #include "iostream" using namespace std; const double PI = 3.14; class Person { public: //属性 string name; void set() { name = "siri"; carName = "wuhu"; Password = 123; } protected: string carName; private: int Password; }; int main() { //实例化 Person p1; p1.name = "zhangsan"; //不会报错,name是公共成员 p1.carName = "111"; //会报错,因为carName是保护成员 p1.set(); //可以通过函数来给私有和保护成员赋值 system ("pause"); return 0 ; }
class和struct的区别
struct创建时,结构体内的成员默认属性都是public
class创建时,类内的成员默认属性都是private
成员属性设置为私有
优点:可以自己控制读写的权限,同时在成员函数内,还可以判断数据的有效性
#include <string> #include "iostream" using namespace std; const double PI = 3.14; class Person { public: void setAge(int age) { if (age < 0 || age > 150) { Age = 0; return; } //在成员函数中判断数据的有效性 Age = age; } //设置私有成员的读写 void setcarName(string carname) { carName = carname; } string getcarName() { return carName; } private: string carName; int Age; string name; }; int main() { //实例化 Person p1; p1.setcarName("111"); cout << p1.getcarName()<<endl; system ("pause"); return 0 ; }
相关文章推荐
- 计算机程序设计(C++)第10周编程作业数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针
- C++ 继承、多态、封装 (面向对象程序设计 三大特性)
- 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
- C++第九周mooc在线测评—第9周 数据的抽象与封装——类与对象(1)
- C++对象内存模型---数据封装
- c++ 成员函数 成员函数指针 委托 封装成对象
- LuaOO (Lua与C++交互的面向对象封装)
- 【C/C++开发】C++ Thread对象封装
- C++:类和对象,类:继承和组合,类的封装:private/public,类定义:class,类的声明和实现
- 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
- GLSL程序对象的C++封装
- C++中小对象内存分配的优化与封装
- C++之对象的封装
- c++封装之对象成员指针
- C++内核对象封装单实例启动程序的类
- C和C++的面向对象专题(4)——解决封装,避免接口
- 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
- C++封装常用对象和对头文件以及预编译机制的探索
- C++ 封装互斥对象
- C++第10周mooc在线测评—第10周 数据的抽象与封装——类与对象(2)