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

Ошибка при использовании STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Map'ы http://www.cyberforum.ru/cpp-beginners/thread399785.html
Здравствуйте! Пожалуйста объясните как пользоваться мапами? Реализация, считывание и т.д
C++ Программа для перевода из 8-чной в 10-чную систему вычесления Нужна помошь в написании програмы для перевода из 8-ой в 10-ую систему счесления! при помощи #include <iostream.>; #include <math.h> вот я пытался написать, выдаёт ошибку #include <iostream.> #include <math.h> using namespace std; void main(void) { int S; http://www.cyberforum.ru/cpp-beginners/thread399776.html
C++ Конкурентная lock-free очередь
Решаю проблему по организации обработки очереди сообщений с lock_free подходом. В односвязную очередь пишет одновременно неограниченное кол-во писателей и принимает сообщения только один читатель, который периодический берет в себе всю текущую очередь целиком и обрабатывает ее. Организовал я это так: /*элемент очереди со значением record и указателем на следующее звено next*/ struct...
C++ Реализовать класс Money используя класс Fraction
1)Создать класс Money для работы с денежными суммами.Число должно быть представлено двумя полями: типом long для рублей и типом unsigned char - для копеек. дробная часть(копейки) при выводе на экран должна быть отделена от целой части запятойю реализовать сложение,вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число и операцию сравнения. 2) создать класс Fraction...
C++ Как лучше учить С++ http://www.cyberforum.ru/cpp-beginners/thread399738.html
Уважаемые форумчане. Поделитесь пожалуйста опытом (кто каким может). Как лучше и быстрее изучить Си, с помощью каких программ, иль литературу какую почитать, книги умные? Может к репетиторам податься? Есть ли вообще репетиторы которые преподают С++, если есть то как с ними связаться? Большое спасибо за помощь и понимание.
C++ Переменную типа string вывести в printf? как в переменную типа string вывести в printf? #include <stdio.h> // для принтф #include <stdlib.h> #include <string> using namespace std; int main() { подробнее

Показать сообщение отдельно
CheToZudit
9 / 9 / 2
Регистрация: 22.10.2011
Сообщений: 19

Ошибка при использовании STL - C++

05.12.2011, 22:14. Просмотров 888. Ответов 9
Метки (Все метки)

Начал знакомиться с STL, и возникли проблемы. Вот суть:
Имеется дочерний класс, одно поле которого является динамическим массивом. При попытке описать функцию, которая заполняет массив, компилятор начинает ругаться.
Это собственно сам класс:
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
#ifndef _GUARD_SHIP_H_
#define _GUARD_SHIP_H_
#include <iostream>
#include <vector>
 
#include "stdafx.h"
#include "Ship.h"
#include "Armament.h"
 
using namespace std;
 
class GuardShip : public Ship {
    vector<Armament>::iterator p;
public:
    void addArm(vector<Armament>::iterator &p);
    void removeArm(Armament arma, vector<Armament>::iterator &p);
    char* setNameArm() {return p->setName();}
    char* getNameArm() {return p->getName();}
    double getCalArm() {return p->getCal();}
    double setCalArm() {return p->setCal();}
    size_t getRangeArm() {return p->getRange();}
    size_t setRangeArm() {return p->setRange();}
    location getLocArm() {return p->getLoc();}
    location setLocArm() {return p->setLoc();}
    size_t getAmmoArm() {return p->getAmmo();}
    size_t setAmmoArm() {return p->setAmmo();}
};
 
#endif // _GUARD_SHIP_H_
Это реализация функций, которые заполняют динамический массив:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "GuardShip.h"
#include <iostream>
 
 
void GuardShip::addArm(vector<Armament>::iterator &p) {
    Armament arma;
    cin >> arma;
    p.push_back(arma); //!!! ругается в этом месте, пишет, что push_back не является членом       
                                    //"std::_Vector_iterator<_Myvec>"
}
 
void GuardShip::removeArm(Armament arma, vector<Armament>::iterator &p) {
    p.erase(p);          // !!!аналогичная ошибка в этом месте
}
Душой понимаю, что проблема скорее всего в передаче итератора в функцию, да и вообще не уверен, есть ли смысл его передавать.
Буду очень благодарен за помощь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru