[英]Syntax for Overloading Type Conversion Operator
很抱歉,是否已經有人問過這個問題,但是我仍在學習C ++,並在語法上有所掙扎。
我應該重載類型轉換運算符,以使其將接受一個對象並基於該對象內受保護的int返回一個int值。
頭文件:
definitions.h
class Baseballs
{
protected:
int currentValue;
public:
Baseballs(int);
int operator= (Baseballs&); // ??????
}
方法:
methods.cpp
#include "definitions.h"
Baseballs::Baseballs(int value)
{
currentValue = value;
}
int Baseballs::operator=(Baseballs &obj) // ??????
{
int temp = obj.currentValue;
return temp;
}
因此在main.cpp中,如果我創建一個對象:
Baseballs order(500);
然后將500分配給currentValue
。 我需要能夠將其分配給一個int變量,並最終將其打印以進行驗證,例如:
int n = order;
cout << n;
我遇到的麻煩是重載=
的語法。 有人可以告訴我定義和方法的正確語法是什么嗎?
重載=
實際上是分配給相同類型的對象。 例如:
order = another_order;
您正在尋找的是重載的轉換運算符。
operator int() { return currentvalue; }
但是,由於轉換次數未知,因此通常不將其視為良好做法。 explicit
重載要安全得多:
explicit operator int() {...}
但是,您需要執行以下操作:
int n = static_cast<int>(order);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.