01.面向对象
- 面向对象的程序设计是对面向过程的继承和发展
- 面向对象可以理解为:现实世界是由对象组成的
- 对象在程序中抽象为两个部分:属性(数据)、行为(函数)
- 三大特点:封装、继承、多态、(四大:抽象)
- 重用:代码重复使用;多线程;低耦合(耦合--内聚),内部互相影响小;组件编程
02.类与对象
- 类是一种用户自定义的数据类型(函数、数据)结构体中不包含函数
- 类是具有相同属性和行为的对象的集合
- 类是对象的抽象,对象是类的具体
- 对象:通过使用类类型定义的变量
-
//语法 class 类名 { //默认是私有类型(实现封装) //成员:1 数据 2 函数 //访问权限修饰关键字 public: //公有的 //成员:1 数据 2 函数 private: //私有的(当前类可访问) //成员:1 数据 2 函数 protected://被保护的----继承相关(当前类和子类可访问) //成员:1 数据 2 函数 };
-
#include <iostream> using namespace std; class Sheep//构建一个类 { public: char name[32]; private: int age; public: void setAge(int n)//通过一个公有的函数访问私有属性 { age = n; } public: void eat() { cout << "eat" << endl; } void speak() { cout << "我叫" << name << ",我" << age << "岁了。" << endl; } private: void speakEnglish() { cout << "My name is " << name << ",I'm " << age << " years old." << endl; } }; int main() { Sheep Xi_Yangyang;//定义一个对象 Xi_Yangyang.eat();//eat()是公有属性可以直接访问 strcpy(Xi_Yangyang.name, "喜羊羊"); Xi_Yangyang.setAge(12); Xi_Yangyang.speak(); Sheep* pY; //pY->eat();//这个指针没有指向任何对象,不允许 pY = &Xi_Yangyang; pY->eat();//指针要有指向后才可以访问成员 pY->speak(); return 0; }
- 类是类(C++),结构体是结构体(C/C++),二者不同,结构体中不能有函数
在C++中,class和struct的区别与联系(关键字!=类与结构体)
- C++里面,可以用class定义一个类,也可以用struct定义一个类
- C++里面,可以用struct声明一个结构体
- 一般情况下用class定义类,用struct定义结构体。(class定义的类访问权限默认是私有的,struct 定义的类访问权限默认是公有的)
03.String类
- String是C++中的字符串
- 类似于C语言中的字符数组
- 其中包括许多方法,使用时需要额外包含<string>头文件
- C语言中使用include<string.h>,C++中使用include<string>
-
#include <iostream> using namespace std; #include<string> int main() { string str; str = "abc123";//直接赋值字符串 char ch = str[2];//用字符接收字符串对应下标的字符 str.length();//得到字符串长度 str.clear();//清除字符串内容 str.empty();//判断返回字符串是否为空 str == str;//字符串比较 return 0; }