2017-11-26 10 views
-1

int +オブジェクトの演算子をどのようにオーバーロードできますか? 逆の方法で、object + intがわかります。どのようにオーバーロードint +オブジェクトC + +?

main.cppに

#include <iostream> 
#include "prueba.h" 
using namespace std; 

int main() 
{ 
int numero = 5; 
Prueba number(9); 
//int numero2 = numero + number; 
int numero2 = number + numero; 
cout << numero2 << endl; 
return 0; 
} 

prueba.h

#include <iostream> 

class Prueba 
{ 
private: 
int numero; 
public: 
Prueba(int numero); 
friend int operator+(int numero, const Prueba& prueba); 
int operator+(int numero)const; 
int getNumero()const; 
}; 

prueba.cpp

#include <iostream> 
#include "prueba.h" 

Prueba::Prueba(int numero) 
{ 
this->numero = numero; 
return; 
} 

int operator+(int numero, const Prueba prueba) 
{ 
int resultado; 
resultado = numero+prueba.getNumero(); 
return resultado; 
} 

int Prueba::operator+(int numero)const 
{ 
int resultado; 
resultado = this->numero + numero; 
return resultado; 
} 

int Prueba::getNumero()const 
{ 
return this->numero; 
} 

//とコメント行は、私は解決できないものです。 メソッドint operator +(int number、constテストテスト)で解決しようとしました

+0

あなたのクラスのオーバーロード '演算子int()'(および必要な他の暗黙的な変換)?参照:http://en.cppreference.com/w/cpp/language/cast_operator – UnholySheep

+0

[この正規オペレータオーバーロード実装のリファレンス](http://en.cppreference.com/w/cpp/language/operators#Canonical_implementations)助けてください。 –

+0

私はこれに関するdownvoteではありませんが、質問がスペイン語の一部であるためだと私は驚くことはありません。テストケースを他の人が手助けできるような形で書くよう努力してください。あなたの質問を理解するために人々がフープを飛ばすのは非常に失礼です。 (または、スペイン語のstackoverflow姉妹サイト(http://es.stackoverflow.com/)があります。あなたがスペイン語の人々にしか興味がない場合は、そこに投稿できます)。 –

答えて

0

ここでは、intの追加をオーバーロードする方法の例を示します。

struct n { int x; }; 

int operator + (int lhs, n rhs) 
{ 
    return lhs + rhs.x; 
} 
関連する問題