Существует такой класс:Override стандартной функции, которая является другом класса
#include <iostream>
#include <cmath>
class Element {
private:
int val;
public:
Element(int val_){ val = val_;}
friend Element std::pow(Element a, int exp);
};
Я хотел бы переопределить стандартную функцию Pow, которая является другом класса Element, работать с объектами моего класса. Однако во время компиляции возникает следующая ошибка:
error: ‘Element std::pow(Element, int)’ should have been declared inside ‘std’
Как переопределить стандартную функцию pow?
Почему вы хотите, чтобы переопределить функцию из станда и не использовать функцию «автономной» с именем в другом точно также пространством имен? – Griwes
Я хотел бы написать некоторую математическую функцию, которая принимает аргументы стандартных типов данных и мой собственный тип данных и использует функцию мощности. – scdmb
Затем сделайте эту математическую функцию шаблонизированной по типам и частично специализируйте ее на своих собственных классах, чтобы использовать вашу функцию (обратите внимание, что я не являюсь носителем английского языка, и я не уверен, что «частично специализация» - это правильное выражение здесь, исправьте меня, если я ошибочно). – Griwes