运行一个文件,但总是使用另一个文件的类

用vs敲的代码,第一个文件是要运行的,但总是用后一个文件的类,运行的结果是:
A构造
B构造
-858993460

好像文件使用的是后一个文件的类,但函数还是使用的test2,因为之后的文件没给second赋值,所以就返回了一个-8589934603乱码
只要我把后一个文件排除生成就全都正常了,结果就是999,这到底是怎么回事呢?
顺便问一下,问什么项目里每个文件的函数名都不能一样?就是同一个文件都有test1方法就报错。
谢谢。


#include<iostream>
#include<string>
using namespace std;

class A
{
public:
    int first;

    A()
    {
        first = 100;
    }
};

class B : public A
{
public:
    int first;

    B()
    {
        first = 999;
    }
};

void test2()
{
    B b;
    cout << b.first << endl;
}

int main()
{
    test2();
    
    system("pause");
    return 0;
}

这是之前的文件


#include<iostream>
#include<string>
using namespace std;

class A
{
public:
    A()
    {
        cout << "A构造" << endl;
    }

    ~A()
    {
        cout << "A析构" << endl;
    }
};

class B : public A
{
public:
    B()
    {
        cout << "B构造" << endl;
    }

    ~B()
    {
        cout << "B析构" << endl;
    }
};

class C : public B
    //继承Base类
{
public:
    C()
    {
        cout << "C构造" << endl;
    }

    ~C()
    {
        cout << "C析构" << endl;
    }
};

void test1()
{
    C c;
}

int main3()
{
    test1();
    //ABCCBA
    //先进栈后出栈
    system("pause");
    return 0;
}

对于这种情况,你main函数明显写错了名字,但是打印的情况是正确的!谢谢,望采纳!

为什么项目里每个文件的函数名都不能一样?
是一个项目里的,文件的函数名自然不能相同,假如说以后做个项目什么的,你是可以函数重载,但是应该是不能直接同名的,可能是为了避免混淆。

以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!

你的问题描述有点看不懂,main3是肯定不对的。

你在一个命名空间中出现了两个完全相同的方法肯定是不正确的