c++162 类的封装和访问
怎么样管理类管理对象
类如何定义对象
#include<iostream>
using namespace std;//求圆的面积
class MyCirecle
{
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:
private:
};
//类的封装
void printCircle01(MyCirecle* pC)
{cout << "r:" << pC->getR() << endl;cout << "s:" << pC->getS() << endl;//类封装了成员变量和成员函数 所以可以调用函数
}
void printCircle02(MyCirecle &myc)
{cout << myc.getS() << endl;
}
void printCircle03(MyCirecle myc)
{}
void main()
{MyCirecle c1, c2;c1.setR(10);cout << "c1 s:" << c1.getS() << endl;printCircle01(&c1);cout << "hello.." << endl;return;
}
//面向对象 三大概念
//封装 继承 多态
//封装:成员的对象和函数 作为一个整体 客观的把事物封装成抽象的类 并且可以把自己的数据和方法只让可信的类或者对象操作 对不可信的进行信息隐藏
//1 属性和方法 封装 2 进行访问控制
//3 类的内部 类的外部
//4 类的访问控制关键字
//public:修饰的成员变量和函数可以在类的内部和类的外部访问
//private: 修饰的成员变量和函数 只能在内部
///protected 修饰的成员变量和函数 只在内 不在外
class MyAdvCirecle
{
private: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:
private:
};
void main()
{MyAdvCirecle c1, c2;//c1.m_r = 19;//这一行在类的外部 private 不能访问c1.setR(10);return;
}
class MyAdvCirecle
{
private: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:
private:
};
struct AAA
{int a;// 不写默认public };
#program one 防止传递两次
类的声明 和实现分开
#include <iostream>
using namespace std;
#include "MyTeacher.h"
void main()
{MyTeacher t1;t1.setAge(43);cout << t1.getAge() << endl;return;
}
#include "MyTeacher.h"
//函数声明换成函数实现
void MyTeacher::setAge(int age)
{m_age = age;
}int MyTeacher::getAge()
{return m_age;
}
#pragma once //只包含一次class MyTeacher
{
private:int m_age;char m_name[32];
public:void setAge(int age);int getAge();
};