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

Копирование контейнера vector в конструкторе (STL) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменить программу для типа unsigned char http://www.cyberforum.ru/cpp-beginners/thread790829.html
Подскажите пожалуйста, что нужно изменить в программе перевода числа, чтобы она правильно работала для введенного числа типа unsigned char,а не int. Когда меняю типы, программа выдаёт один и тот же неправильный результат для любого введенного числа... #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> void dvoich(int x) { int i, b; long...
C++ Error LNK2001: неразрешенный внешний символ Учусь по Страуструпу, решаю задание, нужно создать header файл и два cpp и заставить работать сообща. Почему-то VS12 матерится на использование переменной. Таких тем в интернете множество, но всюду компилятор матерится на ссылку на функцию, которая нигде не определена. У меня ссылка на переменную. Если пытаюсь переменную определить в хедэр файле, мне не дает ее изменить в cpp. Подскажите, что... http://www.cyberforum.ru/cpp-beginners/thread790828.html
про kernel32.dll C++
Доброго времени суток. Такой вопрос: Если прогой написаной на с++ создать в файле kernel32.dll поток то ето не повлияет на его работу? .Я сделал копию этого файла на рабочем столе. Предполагается что в потоке будут сотни гигов инфы %-) Заранее благодарен :)
Ограничение длины вводимых символов C++
Ребят помогите пожалуйста ограничить длину вводимых символов, а именно чисел через cin.getline вот код: #include <iostream> using namespace std; int main () { setlocale(0, "rus"); double A, Z, U; cout<< "Введите значение числа A\n"; while (!(cin>>A) || cin.get()!='\n')
C++ Исключения для формулы http://www.cyberforum.ru/cpp-beginners/thread790791.html
Рассчитать значение функции в заданной с консоли точке с учётом возможных ошибок её вы-числения. Учесть, что функция может иметь деление на аргумент или вычисление квадратного корня, поэтому, при вычислении значения функции может возникнуть исключение. Аргумент функции вво-дится с консоли, а рассчитанное значение функции также выводится на консоль. При вводе значения аргумента следует учесть, что...
C++ Нарисовать тучу, закрывающую солнце. Когда туча наполовину закрывает солнце, начинается дождь Нарисовать тучу, закрывающую солнце. Когда туча наполовину закрывает солнце, начинается дождь. подробнее

Показать сообщение отдельно
Magister
 Аватар для Magister
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 6
20.02.2013, 14:41     Копирование контейнера vector в конструкторе (STL)
Добрый день! У меня есть класс, в котором объявлен вектор указателей на объекты:
C++
1
2
3
4
5
6
7
8
9
10
class Schedule
{
public:
...
    Schedule(void);
    ~Schedule(void);
private:
    string day;
    vector<Lesson*> studies;
}
В своё время вызывается вектор этих объектов в функции main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include "Schedule.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int N = 5; //N - number of written days.
    vector<Schedule*> myPlan;
    Schedule **weekday = new Schedule*[N];
    for(int i=0; i < N; i++)
    {
        weekday[i] = new Schedule(); //cannot copy vector to weekday here :(
        myPlan.push_back(weekday[i]);
    }
...
}
Конструктор Schedule() выглядит так:
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
Schedule::Schedule(void)
{
    ifstream inClientFile("I22.dat", ios::in);
    if ( !inClientFile )
    {
        cerr << "File couldn't be opened!" << endl;
        exit(1);
    }
 
    int count; //How many lessons do we have?
    static int filePosition = 0;
 
    Lesson *newLesson = new Lesson();
    int  numero;
    string nume;
    Auditory camera;
    Time timp;
 
    cout<<"Reading day.."<<endl;
    inClientFile.seekg(filePosition); //pereustanovka ukazatelya pozitii file'a
                                    //na sootvetstvuiushii deni
    inClientFile >> day >> count;
    for (int i = 0; i < count; i++)
    {   
        inClientFile >> numero >> nume >> camera.room >> camera.block >> timp.hour >> timp.minute;
            newLesson->setNumber(numero);
            newLesson->setName(nume);
            newLesson->setAud(camera);
            newLesson->setTime(timp);
        
        this->studies.push_back(newLesson);
    }
    filePosition = inClientFile.tellg();
 
    delete newLesson;
}
Внутри конструктора данные из файла считываются отлично, затем объекту weekday[i] передаётся поле day, тогда как вектор studies остаётся в конструкторе. В чём дело?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru