Я столкнулся с этим кодом и понял, что не могу вспомнить тип используемой инициализации и его предполагаемое поведение.
Point p=(3,2);
только кажется, передать последнее значение (2 в данном случае) в качестве аргумента конструктора, так что PrintOut показывает что-то вроде x=2 y=5
, в отличие от ожидаемого x=3 y=2
Невозможно определить тип инициализации
class Point{
public:
Point(int x=5,int y=5):a(x),b(y){};
void printOut()const{
cout<<"x= "<<a<<"y= "<<b<<endl;}
private:
int a,b;
};
void main(){
Point p=(3,2);
}
Используйте предупреждения своего компилятора. GCC дает мне * предупреждение: левый операнд оператора запятой не имеет эффекта *, которого достаточно для поиска оператора запятой и ответа на вопрос. – chris