class ABC {
public:
	void FunctionA( int aaa );
};
void ABC::FunctionA( int aaa ) {
	int ccc = 10;
	aaa = ccc;
}
If I try to change signature of FunctionA, to "void FunctionA( char bbb, int aaa )", then:
class ABC {
public:
	void FunctionA( char bbb, int aaa );
};
void ABC::FunctionA(  char bbb, int bbb  ) 
{
	int ccc = 10;
	bbb = ccc;
}
As you see all "aaa" will be changed to "bbb" in the implementation, but the signature in the class declaration is valid.
Ctrl-Z (Undo) returns all bbb to aaa, and makes code valid.
Also, you can see mysterious second space inserted before "char bbb" in implementation.