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

Vector и конструктор класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить сопротивление цепи, состоящей из двух резисторов http://www.cyberforum.ru/cpp-beginners/thread1168085.html
Написать функцию, которая вычисляет сопротивление цепи, состоящей из двух резисторов которые соединены параллельно и программу, использующую эту функцию. На языке С++
C++ В заданном предложении указать слово, в котором доля гласных максимальна В заданном предложении указать слово, в котором доля гласных максимальна. Считать, что слова в тексте отделены друг от друга одним пробелом. http://www.cyberforum.ru/cpp-beginners/thread1168080.html
C++ Игра Крестики-нолики: реализация с нуля
Помогите пожалуйста дали задание Составить игру Крестики_нолики на Форме.Чтобы был интерфейс с кнопками "Новая игра","Сброс","Выход".
Открыть файл, прочитать, записать C++
Тут явно ошибка,программа должна,открыть файл,вывести изначальное значение файла,а потом то что я записал в файл.Но как то не так все выходит.С++ #include "stdafx.h" #include <iostream> #include <Windows.h> #include <fstream> #include <stdlib.h> using namespace std;
C++ [ILINK32 Error] Error: Unresolved external http://www.cyberforum.ru/cpp-beginners/thread1168048.html
помогите вылетает ошибка и программа из-за этого не работает! Error: Unresolved external '__fastcall TForm1::LabelNumClick(System::TObject *)' referenced from C:\USERS\КИРИЛЛ\DESKTOP\КУРСОВАЯ ПО ПРОГРАММИРОВАНИЮ\КУРСОВАЯ ИНТЕРФЕЙС BUILDER\DEBUG\UNIT1.OBJ
C++ Загрузить файл txt Как загрузить таблицу из текстового файла? 3 столбца подробнее

Показать сообщение отдельно
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
06.05.2014, 15:48     Vector и конструктор класса
Здравствуйте.

Задача создавать объекты с разными данными.

Я решил сделать класс и на него повесить контейнер Vector.

Ну допустим:

C++
1
2
3
4
5
6
7
8
9
class CTest
{
    public:
 
        float* m_pFirst;
        float* m_pNext;
 
        void Start( float* pFloat );
};
Создал сам контейнер и переменную для обращения к объектам класса.
C++
1
2
std::vector<CTest> vTest;
CTest Test;
Вызываю функцию: Test.Start( 2.0 );

Далее в самой функции изменяю данные переменных и создаю новую ячейку в контейнере:
C++
1
2
3
4
5
6
7
void CTest::Start( float* pFloat )
{
    m_pFirst = pFloat;
    m_pNext = RANDOM_FLOAT( 1, 5 );
 
    vTest.push_back( Test );
}
И так каждый раз при вызове: Test.Start( 2.0 );

У меня будет создаваться новый контейнер, который будет хранить свои данные переменных m_pFirst и m_pNext.

Мои знания слабы в С\С++, поэтому спрашиваю, что здесь не так или не совсем корректно? Потому как мой друг сказал, что это не верно, сказал создать конструктор у CTest и писать примерно так:

C++
1
2
3
vTest.push_back( CStart( 2.0, 3.0 ) );
// Или так:
CTest start; // CTest start(...); vSentryGuns.push_back(gun);
Я не понял, помогите пожалуйста разобраться и подсказать нормальный алгоритм.


Может проблема в том, что я кладу весь класс в контейнер? А нужно только переменные и нужно в классе создать функцию типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class CTest
{
    public:
 
        float* m_pFirst;
        float* m_pNext;
        
        void Calculate( float *one, float *two )
        {
            m_pFirst = one;
            m_pNext = two;
        }
 
        void Start( float* pFloat );
};
А при вызове: Test.Start( 2.0 );

Делать так:
C++
1
2
3
4
void CTest::Start( float* pFloat )
{
    vTest.push_back( Calculate( pFloat, RANDOM_FLOAT( 1, 5 ) ) );
}
Или
C++
1
2
3
4
5
6
7
void CTest::Start( float* pFloat )
{
    CTest Test;
    Test.Calculate(pFloat, RANDOM_FLOAT( 1, 5 ));
 
    vTest.push_back(Test);
}
Если так, причем тогда конструктор, который посоветовали мне ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru