
上述报错困扰了我好几天,在网上搜了一天,到最后还是没有解决问题
试过通过项目属性->C/C+±>代码生成->启用增强指令集->选择AVX,这种方法也没用
但问题出现在创建对象时内存分配问题上

如果是这样创建对象,并且写了析构函数会报错,把析构函数删去之后程序就能正常运行了。
创建对象的方式改为这样,程序也可以正常运行了

给定类的定义如下
- class Test{
- private:
- int a;
- public:
- Test();
- ~Test();
- }
方式一:栈中分配内存,隐式调用构造函数;
Test A;
方式二:栈中分配内存,显式调用构造函数;
Test test = Test();
方式三:堆内存中分内存,使用new关键字显式调用构造函数;
- Test *test = new Test;
- delete Test;
方式四:其他
- // 很不常用的情况:利用对象指针;但在栈中分配内存
- (本质和前面两种一样,不过多了一个对象指针来操作而已)
- Test test1;
- Test *test2 = &test1;
.来访问成员变量和成员函数,这和通过结构体变量来访问它的成员类似->来访问对象的成员变量和成员函数,这和通过结构体指针来访问它的成员类似这跟不用new申明对象有很大区别,类指针可以先行定义,但类指针只是个通用指针,在new之前并为该类对象分配任何内存空间。比如:
Test* ptest = NULL;
参考文章链接:https://blog.csdn.net/weixin_52028906/article/details/124513418