这是在github上看到的,导致我对之前学到关于指针的只是有点混乱,在main函数和globalRsiaeSalary函数中
Employee **emp和Employee *emp[]的区别是什么,我记得以前在csdn上看到,方括号 [ ] 是可以看成是星号✳
我在main函数中这样定义:(这样不行吗?)
Employee **emp = {new Manager(), new Engineer()};
这样不行的话,那这个Employee *emp[] 是什么意思?
#include <iostream>
class Employee
{
public:
virtual void raiseSalary()
{
std::cout << 0 << std::endl;
}
virtual void promote() {
}
};
class Manger : public Employee
{
public:
virtual void raiseSalary() {
std::cout << 200 << std::endl;
}
virtual void promote() {
}
};
class Engineer : public Employee
{
public:
virtual void raiseSalary() {
std::cout << 100 << std::endl;
}
virtual void promote() {
}
};
void globalRaiseSalary(Employee** emp, int n) {
for (int i = 0; i < n; i++) {
emp[i]->raiseSalary();
}
}
int main() {
Employee* emp[] = { new Engineer(),new Manger() };
globalRaiseSalary(emp,2);
return 0;
}