aaa

发布时间 2023-05-29 01:25:34作者: 寒心小呆
#include <iostream>
#include <string>
using namespace std;

//员工基类
class Employee {
public:
    Employee(string value1, int value2):name(value1), beginYear(value2) {}
    int getBeginYear(void) {return beginYear;}
    string getName(void) {return name;}
    double getBasicWage(int currentYear) {
        int workYear = currentYear - beginYear + 1;
        return 60000 + workYear * 1000;
    }
    virtual double getPrize() = 0;
private:
    string name;
    int beginYear;
};

//销售员类
class Saleman: public Employee {
public:
    Saleman(string value1="CPP", int value2=2022, double value3=0.1, double value4=0.0)
        :Employee(value1, value2), deductRate(value3), personAmount(value4) {}
    double DeductRate(void) {return deductRate;}
    double PersonAmount(void) {return personAmount;}
    double getPrize() {return deductRate * personAmount;}
private:
    double deductRate, personAmount;
};

//经理类
class Manager: public Employee {
public:
    Manager(string value1="CPP", int value2=2022, double value5=0.02, double value6=0.0)
        :Employee(value1, value2), totalDeductRate(value5), totalAmount(value6) {}
    double TotalDeductRate(void) {return totalDeductRate;}
    double TotalAmount(void) {return totalAmount;}
    double getPrize() {return totalDeductRate * totalAmount;}
private:
    double totalDeductRate, totalAmount;
};

int main() {
    string name1, name2;
    int year1, year2;
    double rate1, rate2, amount1, amount2;
    cin >> name1 >> year1 >> rate1 >> amount1;
    cin >> name2 >> year2 >> rate2 >> amount2;
    Saleman s(name1, year1, rate1, amount1);
    Manager m(name2, year2, rate2, amount2);
    Employee *e1 = &s, *e2 = &m;
    int currentYear = 2022;
    cout << s.getName() << " 的实发工资为 " << (s.getBasicWage(currentYear) + s.getPrize()) << endl;
    cout << m.getName() << " 的实发工资为 " << (m.getBasicWage(currentYear) + m.getPrize()) << endl;
    return 0;
}
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Book {
public:
    Book(string value1="000", string value2="book", int value3=0):ID(value1), name(value2), num(value3) {}
    ~Book() {cout << "Book is delete" << endl;}
    void setID(string value) {ID = value;}
    void setName(string value) {name = value;}
    void setNum(int value) {num = value;}
    string getID(void) {return ID;}
    string getName(void) {return name;}
    int getNum(void) {return num;}
    void display(void) const {cout << ID << "-" << name << "-" << num << endl;}
private:
    string ID;
    string name;
    int num;
};

int main() {
    Book book[4];
    for (int i = 0; i < 4; i++) {
        string ID, name;
        int num;
        cin >> ID >> name >> num;
        book[i].setID(ID);
        book[i].setName(name);
        book[i].setNum(num);
    }
    int minNum = book[0].getNum();
    for (int i = 1; i < 4; i++) {
        if (book[i].getNum() < minNum) {
            minNum = book[i].getNum();
        }
    }
    ofstream outFile("BookLow.txt");
    for (int i = 0; i < 4; i++) {
        book[i].display();
        if (book[i].getNum() == minNum) {
            outFile << book[i].getName() << " ";
        }
    }
    outFile.close();
    return 0;
}

【C】在类中,如果不做特别说明,所有成员的访问权限均为公有的

【B】调用成员函数实现

【D】公有继承的基类公有成员

【C】非静态成员函数

【B】这个函数所重载的运算符是一个一元运算符

【B】消除二义性

【A】继承

【A】析构函数和构造函数一样可以有形参

【A】3

【B】file.write((char *)&a,sizeof(double)) ;

1.    面向对象程序设计的四大特征分别是抽象、封装、    继承    和    多态    。
2.    在 AB 类的声明体中,语句 AB(AB&x) ; 为 AB 类的    拷贝构造函数的原型说明。
3.    无论是何种继承方式,派生类的成员都不能访问基类    私有    属性的成员。
4.    类中不能修改当前对象数据成员的值的成员函数是    常量成员    函数。
5.    类声明中,说明函数是虚函数的关键字是    virtual6.    C++通过预先定义的操纵符来控制输出的格式,其中操纵符    setw    用于控制输出项的宽度,其中操纵符    oct    用于控制输出项以八进制形式显示。
7.    在 C++类中,不能实例化对象的类是    抽象类    ,该类中至少具有一个    纯虚函数    。

       Template<typename T>

Delete[] v

 

BaseA(i),b(j)

cout << getA() << "," << b.getA() << endl;

 

b[i].show();