Форум программистов, компьютерный форум CyberForum.ru

Vector ругается на использование классов E2397 и Invalid pointer operation - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать 3 одномерных массива одинаковой размерности http://www.cyberforum.ru/cpp-beginners/thread536330.html
1. Создать 3 одномерных массива одинаковой размерности. а) I массив заполнить случайными числами в пределах от -8 до 8. б) Значения элементов этого массива нужно проверить на кратность 3 и результатами заполнить массив II (если значение кратно 3 , то результат true, если некратно - false). в) III массив заполнить элементами в зависимости от значений массива I (отрицательные значения массива...
C++ Stable_sort сортировка вектора по последнему символу Доброе время суток! Очень срочно помогите плз! void setText() { string number; FILE *file; char* file_name = "file.txt"; file = fopen( file_name, "w" ); fputs( "12 41 55 74 95 67 83 99 17", file ); http://www.cyberforum.ru/cpp-beginners/thread536328.html
C++ Процент схожести строк
Всем здрасте. Вообщем дали мне по лабораторным ОСиСП такое задание: 1) Выполнить индивидуальное задание последовательным алгоритмом; 2) Выполнить индивидуальное задание параллельным алгоритмом (обязательно использовать для разграничения общих ресурсов системные объекты синхронизации); 3) Сделать анализ быстродействия последовательного и параллельного алгоритмов. УСЛОВИЕ ЗАДАНИЯ: Сравнение...
C++ Ассемблеровская вставка, указатель &
Всем привет. Возник вопрос. Чем в ассемблеровской вставке заменить сишный оператор &? В контексте __asm & cчитается оператором AND. __asm { push &value } error C2400: синтаксическая ошибка во встроенном коде на языке ассемблера в 'первый операнд'; обнаружено 'AND' Спасибо.
C++ Определить количество различных элементов массива http://www.cyberforum.ru/cpp-beginners/thread536305.html
Ввести с клавиатуры количество n элементов динамического массива; распределить память для его размещения и ввести с клавиатуры вещественные значения элементов этого массива. Определить количество различных элементов массива. Ввести з клавіатури кількість n елементів динамічного масиву; розподілити пам*ять для його розміщення та ввечти з клавіатури дійсні значення лементів цього масиву....
C++ Переписать с паскаля на С++ Переведите плиз вт это в С++ Заранее Сапасибо!!!! var ms:array of integer; max,s,k,i:integer; begin подробнее

Показать сообщение отдельно
Deimon
 Аватар для Deimon
34 / 34 / 2
Регистрация: 29.08.2009
Сообщений: 178
02.04.2012, 00:00     Vector ругается на использование классов E2397 и Invalid pointer operation
Не получается использовать vector с собственными классами
выдает либо [BCC32 Error] Unit1.cpp(62): E2397 Template argument cannot have static or local linkage, либо Invalid pointer operation.

сократил код до того, что видите ниже и не понимаю, почему стандартные типы переменных вектор воспринимает и не ругается. А на класс ругается. Скажите, что я не правильно делаю =(

Ошибка "Invalid pointer operation" возникает когда в цикле при помощи push_back создаются новые объекты. При чем вылетает ошибка на 2,3 интерации, первая всегда проходит без проблем. Если интерацию заменить ручным вводом push_back , то ошибка "Invalid pointer operation" вылетает при попытки закрыть откомпилировонную программу (при выходе)


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <vector.h>
#define GTB Graphics::TBitmap
struct GPS
{
    short x;
    short y;
    void Set(short X, short Y) {x=X; y=Y;};
};
class CBot
{
    private:
        GPS m_pos;
        GTB * m_Pic;
 
 
    public:
        CBot()
        {
            m_Pic = new GTB();
            m_Pic->LoadFromFile("./solder.bmp");
            m_Pic->Transparent = true;
            m_pos.Set(0,0);
        };
        CBot(short X,short Y)
        {
            m_Pic = new GTB();
            m_Pic->LoadFromFile("./solder.bmp");
            m_Pic->Transparent = true;
            m_pos.Set(X,Y);
        }
        ~CBot() {  delete m_Pic;};
        short ReturnX() {return m_pos.x;} ;
        short ReturnY() {return m_pos.y;} ;
        GTB* ToDraw() {return m_Pic;}  ;
};
 
 
vector<int> v_ints;
 
for (int i=0 ; i < 10 ; i++)
{
    v_ints.push_back(10*i);
}
 
 
vector <CBot> v_bots;  //[BCC32 Error] Unit1.cpp(62): E2397 Template argument 
                                 //    cannot have static or local linkage
 
for (int i=0 ; i < 10 ; i++)
{
    v_bots.push_back(10*j);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru