Egyetlen argumentummal rendelkező
konstruktorok esetén (amelyek nem másolat konstruktorok), illetve olyan
konstruktorok esetén, amelyeket a fordító átalakításokhoz használhat,
deklarálja a konstruktort explicit módon. Az implicit típusú
átalakítási operátorok használata helyett, amelyeket a fordító nem várt
módon használhat, használjon egyéni metódusokat explicit módon.
class MyClass {
public:
explicit MyClass(int param, int param2=0);
double toDouble() const;
bool operator==(const MyClass& left, const MyClass& right);
private:
double num;
};
int main(int argc, char* argv[]){
MyClass a;
int b[] = {0,1,2};
for(int i=0; i<3; i++)
if( a.toDouble() == b[i] ){
}
}
}
|
|