用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是肯定不对的。
你在一个命名空间中出现了两个完全相同的方法肯定是不正确的