W przypadku konstruktorów z jednym argumentem
(które nie są konstruktorami kopiującymi) lub konstruktorów, których kompilator
może używać do konwersji, zadeklaruj konstruktor jako jawny. Zamiast używania operatorów niejawnej konwersji typów, których kompilator może
użyć nieoczekiwanie, jawnie wykorzystaj metody niestandardowe.
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] ){
}
}
}
|
|