C++面向对象

C++面向对象,第1张

C++面向对象

文章目录
  • C++面向对象
    • 十二、 类和对象
    • 十三、 类的定义和实例化
    • 员工管理系统版本v.1

C++面向对象 十二、 类和对象
  1. 什么是对象
    万物皆对象,任何一种事物都可以看做是对象.

  2. 如何描述对象
    通过对象的属性和行为来描述对象.

  3. 面向对象程序设计
    对自然世界中对象观察和描述引入到编程中一种理念和方法,这种方法称为"数据抽象",即在描述对象时把细节东西玻璃出去,只考虑一般性的、有规律性的、统一性的东西.

  4. 什么是类
    类就是将多个对象共性提取出来定义的一种新的数据类型,是对 对象 属性和行为的抽象描述.

现实世界 类 虚拟世界
具体对象–抽象–>属性/行为–实例化–>具体对象

十三、 类的定义和实例化
  1. 类定义的一般语法形式
    struct/class 类名:继承方式 基类,…{
    访问控制限定符:
    类名(形参表): 初始化列表{} //构造函数
    ~类名(void){} //析构函数
    返回类型 函数名(形参表){} //成员函数
    数据类型 变量名; //成员变量
    };

  2. 访问控制限定符
    1)public:公有成员,任何位置都可以访问。
    2)private:私有成员,只有类自己的成员函数才能访问
    3)protected:保护成员(后面讲)

注意:
如果struct定义类默认的访问控制属性是public;而如果是class定义类默认的访问控制属性是private.
**eg**:
struct/class XX{
         int a;       //默认访问属性
      public:
         int b;       //公有成员
      private:
         int m_c;  //私有成员
      public:
         int m_d;       //公有成员
         int m_e;       //公有成员
      private:
          int f;           //私有成员
};
参考代码:10class.cpp
#include 
using namespace std;
//原来定义结构体,现在定义类
struct Student{
  //成员函数:描述对象的行为
  void eat(const string &food){
    cout <<"我在吃"< 
参考代码2:使用class
#include 
using namespace std;
//原来定义结构体,现在定义类
//struct Student{
class Student{
public:
  //成员函数:描述对象的行为
  void eat(const string &food){
    cout <<"我在吃"< 
员工管理系统版本v.1 

参考代码: employee.cpp

#include 
using namespace std;

class Employee{
public:
    void printInfo(void){
        cout << "姓名:" << m_name << endl;
        cout << "工号:" << m_id << endl;
        cout << "基础工资:"  << m_salary << endl;
    }
    void calSalary(void){
        cout << "请输入出勤天数:";
        int days;
        cin >> days;
        double basic = m_salary * (days/23.0);
        double merit = basic / 2;
        cout << (basic + merit) << endl;
    }
public:
    void setId(int id){
        if(id<10000)
            cout << "无效的工号" << endl;
        else
            m_id = id;
    }
    void setName(const string& name){
        if(name.size() > 20)
            cout << "无效的姓名" << endl;
        else
            m_name = name;
    }
    void setSalary(double salary){
        if(salary<0)
            cout << "无效的工资" << endl;
        else
            m_salary = salary;
    }
private:
    int m_id;//工号
    string m_name;//姓名
    double m_salary;//工资
};
int main()
{
    Employee emp;
    emp.setId(10011);
    emp.setName("张三");
    emp.setSalary(6600);

    emp.printInfo();
    emp.calSalary();
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存