类和对象的基本概念
类是自定义数据类型,是C语言的结构体进化而成的
对象是类实例化出的,用数据类型定义一个变量
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class Maker //这个是类
{
public:
int a;//成员属性(成员变量)
void func()//成员方法(成员函数)
{
cout << "func" << endl;
}
};
int main()
{
Maker m; //m就是对象
system("pause");
return EXIT_SUCCESS;
}
类的封装
C和C++中struct区别:
C语言struct只有变量
C++语言struct既有变量,也有函数
1、为什么要有封装?
封装是把属性(变量)和方法(函数)封装到类内,然后给这些数据赋予权限,防止乱调用函数和变量,出现错误,维护代码更方便
//类外不能访问私有权限的成员
//类外可以访问公有权限的成员
//类外不能访问保存权限的成员
//子类的类内可以访问父类的保护权限的成员 不能访问私有权限的成员
//类内是没有权限之分的
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include<string>
//封装:1、把属性和方法放到类中,给这些数据赋予权限
//类内
class Maker
{
public://公有权限
void set(string Name,int Id)
{
id = Id;
name = Name;
}
void printMaker()
{
cout << "id=" << id << "name=" << name << endl;
}
private://私有权限
int id;
string name;
protected://保护权限
int a;
};
class Son :public Maker
{
void func()
{
a = 20;//子类的类内可以访问父类的保护权限的成员
//id = 1;//err
}
};
//类外不能访问私有权限的成员
//类外可以访问公有权限的成员
//类外不能访问保存权限的成员
//子类的类内可以访问父类的保护权限的成员 不能访问私有权限的成员
//类内是没有权限之分的
void test01()
{
Maker m;
m.set("露琪亚", 1);
m.printMaker();
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}