#include <iostream>
using namespace std;
class Test
{
public:
Test(int = 0);
//復制建構式
Test(const Test&);
//多載"+"運算子
Test operator+(Test&);
//多載"="運算子
Test& operator=(Test&);
//多載"()",用于回傳"Number"的值
int operator()();
private:
int Number;
};
//建構式
Test::Test(int Number_Parameter) :Number(Number_Parameter){}
//復制建構式
Test::Test(const Test& test)
{
Number = test.Number;
}
/*四則運算類的函式實作*/
Test Test::operator+(Test& test)
{
int Number_Parameter = 0;
Number_Parameter = Number + test.Number;
return Test(Number_Parameter);
}
/*賦值運算子函式實作*/
//在多載"="運算子的時候給引數加上"const",程式就不會報錯了
Test& Test::operator=(Test& test)
{
Number = test.Number;
return *this;
}
/*()多載函式實作*/
int Test::operator()() { return Number; }
int main()
{
Test test_1(1), test_2(2), test(0);
//這里會報錯:"沒有與這些運算元匹配的運算子"
test = test_1 + test_2;
cout << test() << "\n";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/277855.html
標籤:C++ 語言
