1.
类和对象的概念
类对一系列事物的抽象化,万物都可以为类
类由两部分组成:属性,行为
属性:事物的特征----->数据类型描述
比如你需要一只狐狸 它要有重量,颜色,这个是属性
行为 :事物的操作----->函数描述
你要这只狐狸去帮你做什么,这个是行为,想做什么都可以 (只要你能用代码描述出来就好了)
1.2
什么是对象:对象就是类的具体化,类的实例化
可以理解为定义狐狸了
1.3
类的特点:封装,继承/派生,多态
1.4
类的创建 关键字 class 类名
权限限定词: public:(公有属性) protected:(保护属性) private:(私有属性)
这三个限定词的作用是为了类外的访问:类外去调用的就只能访问public下的东西 我们也可以把 public下的东西叫做类外的接口
protected:(保护属性) private:(私有属性)类外是不可以访问 ,但是可以通过公有接口
通过引用 或者是传参赋值的方式去做 贴代码:
#include<iostream>
#include<string>
using namespace std;
class fox //创建类
{
public: //公有属性
void print() //行为 我要让这只狐狸告诉我它的颜色和名字
{
cout << name << "\t" << Color << "\t" << age << endl;
}
protected: //(保护属性)
//在新标准中 允许赋初值
string name="NULL"; //狐狸的名字
string Color="NULL"; //狐狸的颜色;;
private: //私有属性
int age=0;//我认为狐狸的年纪是私有属性
};
int main()
{
fox yueyue;//创建对象 创建了一个叫yueyue的对象 它的类是fox
yueyue.print();//发现能访问的成员只有一个 也就是公有属性下的这个行为函数
//yueyue.Color = "heise";
while (1);
return 0;
}
我们发现编译器告诉我们不可以访问该数据 所以保护属性和私有属性内中的东西皆不能在类外访 问,它们之间的区别只在于对继承,对类外都是一样的不可以访问
类里没有写在权限限定词下的默认都是私有属性,结构体类型与之相反 结构体默认是公有属性
1.5
属性的初始化,或者说数据成员的访问
我们如果需要从类外修改类中的数据,我们可以传参的方式,也可以用引用的方式
我们只需要把修改的接口写在公有属性下
#include<iostream>
#include<string>
using namespace std;
class fox //创建类
{
public: //公有属性
void print() //行为 我要让这只狐狸告诉我它的颜色和名字
{
cout << name << "\t" << Color << "\t" << age << endl;
}
string& Modif() //通过引用的方式修改
{
return Color;
}
void Modifage(int m_age) //通过传参
{
age = m_age;
}
protected: //(保护属性)
//在新标准中 允许赋初值
string name="NULL"; //狐狸的名字
string Color="NULL"; //狐狸的颜色;;
private: //私有属性
int age=0;//我认为狐狸的年纪是私有属性
};
int main()
{
fox yueyue;//创建对象 创建了一个叫yueyue的对象 它的类是fox
yueyue.print();//发现能访问的成员只有一个 也就是公有属性下的这个行为函数
yueyue.Modif() = { "白色" };
yueyue.Modifage(18);
yueyue.print();
while (1);
return 0;
}
1.6
new对象
对象的创建(上面代码讲过了)
对象数组
#include<iostream>
#include<string>
using namespace std;
class fox //创建类
{
public: //公有属性
void print() //行为 我要让这只狐狸告诉我它的颜色和名字
{
cout << name << "\t" << Color << "\t" << age << endl;
}
string& Modif() //通过引用的方式修改
{
return Color;
}
void Modifage(int m_age) //通过传参
{
age = m_age;
}
protected: //(保护属性)
//在新标准中 允许赋初值
string name="NULL"; //狐狸的名字
string Color="NULL"; //狐狸的颜色;;
private: //私有属性
int age=0;//我认为狐狸的年纪是私有属性
};
int main()
{
fox yueyue;//创建对象 创建了一个叫yueyue的对象 它的类是fox
fox* pyueyue= new fox; //new 一个对象
fox yueyuearray[5]; //yueyuearray[0]~[4] 都是对象
pyueyue->print(); //通过箭头运算符在类外访问pyueyue对象中公有属性
yueyuearray[0].print();
yueyuearray[1].print();//数组怎么用,就怎么用,看不懂的基本上C语言划水
}