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

Реализовать динамический массив объектов, учитывая, что параметры для конструктора у каждого объекта разные - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ QSort для строк http://www.cyberforum.ru/cpp-beginners/thread733041.html
Работает не верно. Нельзя использовать стркутуры, классы. void SAlphabetSort(char* String, int iLo, int iHi) //Алгоритм Хоара { //границы подмножества int Lo = iLo; int Hi = iHi; while(*(String + Hi) == ' ' || *(String + Hi) == '\0' || *(String + Hi) == '\n') //поиск конца слова if(Hi) //выбор слова в правом подмножестве Hi--;
C++ Ошибка LINK error LNK1123: failure during conversion to COFF: file invalid or corrupt Не знаю из-за чего такая ошибка может быть, пытался скомпилить 2 проекта один из них 100% рабочий и на обеих этапах компиляции такая ошибка, что то со студией? тогда что.. http://www.cyberforum.ru/cpp-beginners/thread733010.html
C++ Где скачать Borlan С++
Начал изучать системное программирование. Дали на паре решить задачу дома,уже второй день роюсь не могу найти где скачать Borlan С++ на windows7-64bit. Кто сможет скиньте ссылку! Заранее спасибо!!!
Источники информации C++
Я интересуюсь Java и знаю, что есть хорошие сообщества, которые предоставляют интересный материал, например такие как jug.ru. Вопрос: какие похожие сообщества есть у C++ разработчиков?
C++ Описать конструктор объекта http://www.cyberforum.ru/cpp-beginners/thread733001.html
1. На экран выводятся натуральные числа (до n) в случайном порядке и степень, в которую нужно возвести число (1-3). Пользователь должен ввести результат возведения предложенного числа в данную степень. За правильный ответ пользователю начисляется 10 баллов, за неправильный - снимается 20 баллов. Задача пользователя набрать как можно больше баллов. На начало игры пользователю дается 10*n баллов....
C++ Поиск элемента Программа считает сколько минимально раз подряд встречается элемент х в массиве #include <iostream> using namespace std; int main() { int a={ 5, 5, 3, 5, 5, 5, 8, 8, 9}; int c=0; подробнее

Показать сообщение отдельно
Random_value
0 / 0 / 0
Регистрация: 28.08.2016
Сообщений: 3
28.08.2016, 11:07     Реализовать динамический массив объектов, учитывая, что параметры для конструктора у каждого объекта разные
Совершенно не обязательно использовать вектор. Тем более на сколько я знаю, нельзя использовать вектор для объектов класса без пустого конструктора, а это не очень то хорошо - если сам класс будет использовать для своих полей выделение памяти, то в идеале это нужно делать в конструкторе и очищать память в деструкторе.
Например для класса:
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
#include <string>
class MyClass
{
public:
    char *sName;
    int nAge;
    MyClass(char* Name);
    MyClass(char* Name,int age);
    ~MyClass();
};
 
MyClass::MyClass(char* Name)
{
    sName=new char[strlen(Name)+1];
    strcpy(sName,Name);
    nAge=18;
}
 
MyClass::MyClass(char* Name,int age)
{
    sName=new char[strlen(Name)+1];
    strcpy(sName,Name);
    nAge=age;
}
 
MyClass::~MyClass()
{
    delete[] sName;
}
Нужно делать вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
    MyClass *people=(MyClass*)malloc(sizeof(MyClass));
    new(&people[0])MyClass("Alan");
    people=(MyClass*)realloc(people,sizeof(MyClass)*2);
    new(&people[1])MyClass("Bob",20);
    for (int i = 0; i < 2; i++)
    {
        std::cout<<people[i].sName<<" "<<people[i].nAge<<std::endl;
        people[i].~MyClass();
    }
    free(people);
    system("pause");
    return 0;
}
Удалять элементы с конца примерно так же - вызываем деструктор, а потом realloc, на 1 элемент меньше.
 
Текущее время: 19:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru