함수를 오버로드할 때는 참조나 포인터를 전달해야 하며, 모든 함수는 동일한 유형의 데이터를 사용해야 합니다. 함수가 다시 작성될 때 참조 멤버 함수의 경우 하위 클래스 함수는 동일한 유형의 변수를 참조해야 하며, 하위 클래스 함수는 동일한 유형의 변수를 가리켜야 합니다.
함수 오버로딩을 사용하면 동일한 범위에서 이름은 같지만 매개변수 목록이 다른 여러 함수를 생성할 수 있습니다. 참조 및 포인터의 경우 다음 사항에 주의해야 합니다.
참조를 전달할 때 모든 함수는 동일한 유형의 데이터를 참조해야 합니다.
void print(const int& num); void print(const double& d);
포인터를 전달할 때 모든 함수는 동일한 유형의 데이터를 가리켜야 합니다.
void print(int* num); void print(double* d);
함수 재작성은 하위 클래스의 이름과 매개변수 목록이 동일한 상위 클래스의 함수를 구현하는 것입니다. 참조 및 포인터의 경우 주의해야 합니다.
참조 멤버 함수의 경우 하위 클래스 함수는 동일한 유형의 변수를 참조해야 합니다.
class Parent { public: void setAge(const int& age); }; class Child : public Parent { public: void setAge(const int& age) override; // 同一类型引用 };
멤버 함수를 가리키는 경우 하위 클래스 함수는 다음을 참조해야 합니다. 동일한 유형의 변수를 가리킵니다. 이 클래스에는 setAge(const int& age)
와 setName(const string& name)
이라는 두 가지 멤버 함수가 있습니다.
Employee
를 만들고 Person
클래스에서 상속한 다음 setAge
함수를 재정의하여 연령을 age
로 설정합니다. code>에 5를 추가하기 전에. class Parent { public: int* getPtr(); }; class Child : public Parent { public: int* getPtr() override; // 同一类型指针 };이제
Employee
개체를 만들고 재정의된 setAge
함수를 사용할 수 있습니다. class Person { public: void setAge(const int& age); void setName(const string& name); }; class Employee : public Person { public: void setAge(const int& age) override; // 重写setAge函数 }; // Employee 类中的 setAge 函数 void Employee::setAge(const int& age) { Person::setAge(age + 5); // 调用父类setAge函数 }
위 내용은 C++ 함수 오버로드 및 재작성에서 참조 및 포인터 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!