qq_34378013 2018-12-31 10:27 采纳率: 14.3%
浏览 410

如何实现vector容器存储类但是提示Stack overflew?

C++刚入门 不太会,请各位大神帮忙查一下这个错误是为什么,真的万分感谢!!!

设计一个CMyClass,它仅包含一个int类型的成员变量m_nValue,该类能够自动实现记录添加新类到Vector容器中,不需要类的用户再做任何特别处理的情况下,实现用一个简单的容器中存储一个类的所有实例。

但是在编译的过程中出现了图片说明这个报错。

最终程序的正确输出结果应该是:

The first end:
100
1
0
10
The second end:
100
1
0
10
1000
The third end:
100
1
0
#include "pch.h"
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;

class CMyClass
{
public:
    int m_nValue;
public:
    static vector<CMyClass>member;
    CMyClass();
    CMyClass(int value);
    ~CMyClass();
    static void ShowList();
    friend ostream & operator<<(ostream & output, const CMyClass & temp);

};

std::vector<CMyClass> CMyClass::member;

CMyClass::CMyClass()
{
    m_nValue = 0;
    member.push_back(*this);
}
CMyClass::CMyClass(int value)
{
    m_nValue = value;
    member.push_back(*this);
}
CMyClass::~CMyClass()
{
    member.pop_back();
}
void CMyClass::ShowList()
{
    //vector<CMyClass>::iterator it;
    //for (it = member.begin(); it != member.end(); it++);
    for(int i=0;i<member.size();i++)
    {
        cout << member.at(i) << endl;
    }

}


ostream & operator<<(ostream & output, const CMyClass & temp)
{
    output << temp.m_nValue;
    return output;
}

int main()
{
    CMyClass a(100);
    CMyClass b(1);
    CMyClass c;
    CMyClass *d = new CMyClass;
    *d = 10;
    cout << "The first end: " << endl;
    CMyClass::ShowList();
    if (1)
    {
        CMyClass e(1000);
        cout << "The second end: " << endl;
        CMyClass::ShowList();
    }
    delete d;
    cout << "The third end: " << endl;
    CMyClass::ShowList();
    return 0;
}
  • 写回答

1条回答

  • threenewbee 2018-12-31 15:46
    关注

    CMyClass::~CMyClass()
    {
    //member.pop_back();
    }
    注释掉这一行

    评论

报告相同问题?

悬赏问题

  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 微信小游戏反编译后,出现找不到分包的情况
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)