C++ stl::list Destructor проблема

программирование программы windows С++

Есть список, являющийся public полем класса. При попытки вызвать деструктор класса или деструктор списка-выдает ошибку ссылаясь на исходник класса list.
Кидал уже деструктор листа в деструктор класса, очищал лист перед вызовом деструктора через clear - все бестолку.

Примечание:
ща код скину

Примечание:
#include <iostream>
#include <string>
#include "windows.h"
#include <list>
#include <conio.h>
using namespace std;

//Имеется структ

struct onestring
{
string name;
int markmath, markphys, markrus;
bool ispay;
};

// И класс со списком из этого структа
class Data
{
private:

int x_position, y_position;

void ClearStr(int x, int y)
{
....
}

void TextColor(bool color, double x, onestring localstring, int arr_x, int arr_y)
{
...
}

public:

list<onestring> lst; //Этот список

Data(int numstr)
{
...
}
//Именно в когда вызываешь деструктор вылетает программа и ошибка
//"Unhandled exception at 0x00a64bac in MyCurse.exe: 0xC0000005: Access violation reading location 0xfeeefeee."
~Data()
{
//lst.~list<onestring>();
}
void ShowData();
void AddDataString();
void ArrowsControl();
void SortData(double column);
};

Примечание:
проблема в том что при вызове деструктора обьекта класса-вызывается и деструктор списка и происходит вылет. А удалять обьект мне необходимо. Как с этим быть?

Примечание:
void CreateNewTableClick()
{
data dt(table.GetString());
... //идёт работа с классом и списком
}

Я нигде не вызываю деструктор. Он по идее автоматически должен вызываться после завершения работы процедуры...

Примечание:
К сожалению я еще не знаком с таким понятием (
Работаю под MS Visual Studio 2010(Ultimate)
Может вам Call Stack нужен? Объясните поподробнее...

Примечание:
> MyCurse.exe!std::list<onestring,std::allocator<onestring> >::clear() Line 1109 + 0xc bytes C++
MyCurse.exe!std::list<onestring,std::allocator<onestring> >::_Tidy() Line 1498 C++
MyCurse.exe!std::list<onestring,std::allocator<onestring> >::~list<onestring,std::allocator<onestring> >() Line 771 C++
MyCurse.exe!Data::~Data() Line 130 + 0x12 bytes C++
MyCurse.exe!CreateNewTableClick() Line 397 + 0xf bytes C++
MyCurse.exe!main() Line 410 C++
MyCurse.exe!__tmainCRTStartup() Line 555 + 0x19 bytes C
MyCurse.exe!mainCRTStartup() Line 371 C
kernel32.dll!76881194()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!76ebb495()
ntdll.dll!76ebb468()

Примечание:
Autos(напрягают ошибки):

+ _Myhead 0x003245d0 {_Next=0x003245d0 _Prev=0x003245d0 _Myval={...} } std::_List_nod<onestring,std::allocator<onestring> >::_Node *
- _Pnext 0xcccccccc {_Next=??? _Prev=??? _Myval={...} } std::_List_nod<onestring,std::allocator<onestring> >::_Node *
_Next CXX0030: Error: expression cannot be evaluated
_Prev CXX0030: Error: expression cannot be evaluated
- _Myval {name={...} markmath=??? markphys=??? ...} onestring
name {npos=4294967295 } std::basic_string<char,std::char_traits<char>,std::allocator<char> >
markmath CXX0030: Error: expression cannot be evaluated
markphys CXX0030: Error: expression cannot be evaluated
markrus CXX0030: Error: expression cannot be evaluated
ispay CXX0030: Error: expression cannot be evaluated
- _Pnode 0xfeeefeee {_Next=??? _Prev=??? _Myval={...} } std::_List_nod<onestring,std::allocator<onestring> >::_Node *
_Next CXX0030: Error: expression cannot be evaluated
_Prev CXX0030: Error: expression cannot be evaluated
- _Myval {name={...} markmath=??? markphys=??? ...} onestring
name {npos=4294967295 } std::basic_string<char,std::char_traits<char>,std::allocator<char> >
markmath CXX0030: Error: expression cannot be evaluated
markphys CXX0030: Error: expression cannot be evaluated
markrus CXX0030: Error: expression cannot be evaluated
ispay CXX0030: Error: expression cannot be evaluated
this 0x0021f890 [0]() std::list<onestring,std::allocator<onestring> > * const

Примечание:
впринципе не стоит всю эту белиберду вверху смотреть. Я все и сам пойму если кто нибудь напишет мини-код:

Класс
Поле класса- стандартный список любого типа(но лучше если это какой-нить struct)
Метод класса-забить этот список любыми случайными данными

Далее хочется увидеть как создается обьект того класса и его деструкция.

Так будет проще и мне и отвечающим.

Примечание:
Пля я ступил. сори. Деструктор же вызывается для всего класса а не для обьекта. Keres спасибо.
Ответы:
какая именно ошибка?
Может быть, потому, что std::list, а не stl::list?)
Код в студию!
Ну все правильно, список у вас статический. Удаляется автоматически. А вы еще раз деструктор дергаете. Конструкторы и деструкторы вручную не вызываются, у них назначение такое - работать автоматом при создании и удалении объекта.
>>проблема в том что при вызове деструктора обьекта класса-вызывается и деструктор списка и происходит вылет. А удалять обьект мне необходимо. Как с этим быть?
Показывайте код, где вы создаете удаляете класс.
UPD
Давайте еще бэктрейс
>>Может вам Call Stack нужен? Объясните поподробнее
Да, это одно и то же)
>>впринципе не стоит всю эту белиберду вверху смотреть. Я все и сам пойму если кто нибудь напишет мини-код
http://pastebin.com/jHNfbmSd


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.