我的代码如下,明明也能正常运行,但是在退出黑框框的时候报错。如下图所示。报错的内容是:Run-Time Check Failure #2 - Stack around the variable 'p' was corrupted.
#include <iostream>
using namespace std;
// 优点1:可以自己控制读写权限
// 优点2:可以检测数据的有效性
class Person
{
public:
void setName(string name)
{
m_name = name;
}
string getName()
{
return m_name;
}
private:
string m_name; //姓名 可读可写
int m_age; //年龄 只读
int m_Idol; //偶像 只写
};
int main()
{
Person p;
p.setName("张三");
cout << p.getName() << endl;
system("pause");
return 0;
}
我在网上查了很多资料。都说是内存越界造成的。
我问了问CodeGeeX,然后它说我的代码没有问题就很离谱,虽然说我也觉得我的代码没有问题。
但是他告诉我“由于其他部分的代码引起的”,倒是给我一点启发。
最终检查的结果是两个cpp文件定义了相同的Person类。
解决访问是把04文件里的Person换成了Person04
然后就正常了。
果然新手犯的低级错误就是多。