类的分装
#include <iostream>
using namespace std;
//封装,把属性和方法进行封装,对属性和方法进行访问控制
//类的内部和类的外部
//class 关键字是结构体struct关键字的加强
class MyCircle
{
//public修饰的成员变量和函数,可以在类的内部和类的外部访问
public:
double m_r; //属性 成员变量
double m_s;
public:
double getR()
{
return m_r;
}
void setR(double r)
{
m_r = r;
}
double getS()
{
m_s = 3.14 * m_r * m_r;
return m_s;
}
//protected 修饰的成员和变量只能在类的内部访问
protected:
private:
};
//类封装的威力 相当于结构体包含了成员函数
void printCircleA(MyCircle *cp) //指针
{
cout << "指针方式:" << endl;
cout << "半径:" << cp->getR();
cout << " 面积:" << cp->getS() << endl;
}
void printCircleB(MyCircle &cp) //引用
{
cout << "引用方式:" << endl;
cout << "半径:" << cp.getR();
cout << " 面积:" << cp.getS() << endl;
}
int main01()
{
MyCircle c1;
c1.setR(10);
printCircleA(&c1);
printCircleB(c1);
system("pause");
return 0;
}
类的访问控制
#include <iostream>
using namespace std;
class MyCircleB
{
//没有权限修饰的成员变量\函数 默认私有属性
private: //私有属性
double m_r; //属性 成员变量
double m_s;
//public修饰的成员变量和函数,可以在类的内部和类的外部访问
public:
double getR()
{
return m_r;
}
void setR(double r)
{
m_r = r;
}
double getS()
{
m_s = 3.14 * m_r * m_r;
return m_s;
}
//protected 修饰的成员和变量只能在类的内部访问
protected:
private:
};
int main02()
{
MyCircleB c1;
c1.setR(10);
//c1.m_r = 10; //访问失败
cout << "R:" << c1.getR() << endl;
cout << "S:" << c1.getS() << endl;
system("pause");
return 0;
}
类的声明和类的实现分开
#include <iostream>
#include "MyTeacher03.h"
using namespace std;
int main03()
{
MyTeacher03 c1;
c1.setAge(20);
cout << "age:" << c1.getAge() << endl;
system("pause");
return 0;
}
//##########################################################################
//"MyTeacher03.h"文件
#pragma once //条件编译符 只包含一次
//#ifndef __MYTEACHER_H_
//#define __MYTEACHER_H_
class MyTeacher03
{
private:
int m_age;
char name[32];
public:
void setAge(int age);
int getAge();
};
//
//#endif
//################################################################################
//MyTeacher03.c文件
include "MyTeacher03.h"
void MyTeacher03::setAge(int age)
{
m_age = age;
}
int MyTeacher03::getAge()
{
return m_age;
}