Articles of sobrecarga de operador

Por que o object istream pode ser usado como expressão booleana?

Alguém sabe porque o object istream pode ser usado como expressão bool? Por exemplo: ifstream input(“tmp”); int iValue; while (input >> iValue) //do something; Aqui input >> iValue retorna uma referência ao object ifstream. Eu quero saber por que esse object pode ser usado como uma expressão bool. Eu olho para a class ifstream e […]

Sobrecarregando operador de atribuição em c #

Eu sei que o operador = não pode ser sobrecarregado, mas deve haver uma maneira de fazer o que eu quero aqui: Estou apenas criando aulas para representar unidades quantitativas, já que estou fazendo um pouco de física. Aparentemente eu não posso simplesmente herdar de um primitivo, mas eu quero que minhas classs se comportem […]

Como você sobrecarregaria o operador no javascript

Eu não consigo encontrar o caminho para sobrecarregar o operador [] em javascript. Alguém aí sabe? Eu estava pensando nas linhas de … MyClass.operator.lookup(index) { return myArray[index]; } ou não estou olhando para as coisas certas.

Qual é o caminho certo para sobrecarregar o operador == para uma hierarquia de classs?

Suponha que eu tenha a seguinte hierarquia de classs: class A { int foo; virtual ~A() = 0; }; A::~A() {} class B : public A { int bar; }; class C : public A { int baz; }; Qual é o caminho certo para sobrecarregar o operator== para essas classs? Se eu fizer todas […]

Javascript: sobrecarga de operadores

Eu tenho trabalhado com JavaScript por alguns dias agora e cheguei a um ponto em que eu quero sobrecarregar os operadores para os meus objects definidos. Depois de um período no Google procurando por isso, parece que você não pode oficialmente fazer isso, ainda existem algumas pessoas lá fora, alegando alguma maneira prolixo de realizar […]

Falha de resolução de sobrecarga ao transmitir object por meio de conversão implícita em string

Isenção de responsabilidade: Eu sei que a conversão implícita em string deve ser evitada, e que a abordagem apropriada seria uma op<< sobrecarga para Person . Considere o seguinte código: #include #include #include struct NameType { operator std::string() { return “wobble”; } }; struct Person { NameType name; }; int main() { std::cout << std::string("bobble"); […]

Como faço para verificar nulos em uma sobrecarga de operador ‘==’ sem recursion infinita?

O seguinte causará recursion infinita no método de sobrecarga do operador == Foo foo1 = null; Foo foo2 = new Foo(); Assert.IsFalse(foo1 == foo2); public static bool operator ==(Foo foo1, Foo foo2) { if (foo1 == null) return foo2 == null; return foo1.Equals(foo2); } Como faço para verificar se há nulos?

O operador << deve ser implementado como amigo ou como membro?

Essa é basicamente a questão, existe uma maneira “certa” de implementar o operator<< ? Lendo isso , posso ver algo como: friend bool operator<<(obj const& lhs, obj const& rhs); é preferível a algo como ostream& operator<<(obj const& rhs); Mas não consigo ver por que devo usar um ou outro. Meu caso pessoal é: friend ostream […]

Sobrecarregando operadores aritméticos em JavaScript?

Esta é a melhor maneira que posso pensar em formular esta questão, dada esta definição de “class” JavaScript: var Quota = function(hours, minutes, seconds){ if (arguments.length === 3) { this.hours = hours; this.minutes = minutes; this.seconds = seconds; this.totalMilliseconds = Math.floor((hours * 3600000)) + Math.floor((minutes * 60000)) + Math.floor((seconds * 1000)); } else if (arguments.length […]

Operador sobrecarga

É possível sobrecarregar o operador [] duas vezes? Para permitir, algo como isto: function[3][3] (como em uma matriz bidimensional). Se for possível, gostaria de ver algum código de exemplo.