早上被这个问题挡住了很久..
A simple repro:
下面这段代码,我原本期待最后打出的值是1, 因为a(int)调用了a(int,int)而后者给m1赋值1, 结果是2.
- public class a
- {
- public:
- int m1;
- a(int i, int j):m1(1)
- {
- }
- a(int i):m1(2)
- {
- a(m1,m1);
- }
- };
- int main(array<System::String ^> ^args)
- {
- a a1(3);
- Console::WriteLine(a1.m1.ToString());
- Console::ReadLine();
- return 0;
- };