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

Неправильно работает функция CArray.Add() - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не верный результат при обработке одномерного массива http://www.cyberforum.ru/cpp-beginners/thread1141885.html
Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random(). Найти сумму элементов массива, положительных его элементов. //--------------------------------------------------------------------------- #include <clx.h> #include <iostream.h>...
C++ Аналог flushall Подскажите пожалуйста что предлагает стандарт с++ как аналог flushall? В задании чётко указано не использовать системные вызовы через system и не использовать flushall ... http://www.cyberforum.ru/cpp-beginners/thread1141873.html
Перевести из Perl в C++ C++
Всем добра! :) Переводил как-то прогу одну из Perl в C++ и возникло несколько моментов в Perl функция sqrt умеет вычислять значения корня из комплексного числа, а как научить C++ sqrt работать с комплексными числами? ещё как перевести на C++ эти конструкции $RR=($R * ~$R); @freqs=(@freqs,$rf); @RExp=(@RExp,$rr); частично переведённый на C++
Списки, однонаправленный кольцевой C++
Ребят пожалуйста нужна помощь в написание программки на си 2010,задание: Найти целое число по числу, введенному с клавиатуры и после него добавить новое число. За ранние спасибо=)
C++ SDL mouse http://www.cyberforum.ru/cpp-beginners/thread1141853.html
если обработка нажатия на левую кнопку мыши это if (occur.type == SDL_MOUSEBUTTONDOWN) if(occur.button.button == SDL_BUTTON_LEFT) { // что-то.. } а обработка движения мыши это
C++ Как записать результат в файл здравствуйте! имеется код на С++, все работает, результат выводит на экран.. но нужно чтоб выводил результат в файл.txt... помогите пожалуйста переделать, СПАСИБО! #include <iostream.h> #include <math.h> using namespace std; int A,B,n,N; double f, fi, R1, R2,R3,R4, R5,R6,t0,t1,t2, L,C,h,E0,w,pi,D1, D2,D3,FI, FU, T1, T2, Int, S1, S2; double I,U,t; double E(double tl) {if(tl>t1) {return 0;}... подробнее

Показать сообщение отдельно
FreestyleDM
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 16
07.04.2014, 23:34     Неправильно работает функция CArray.Add()
Вобщем вызываю CellAr.Add(DictCell("sda",823)) но в сам массив записывается объект созданный конструктором без параметров, хотя через отладку(F11 в VS13) показывает что использует конструктор копирования.
Подскажите, что не так.
Привожу часть кода неработающую. Все что относится к проблеме.
afxtempl.h подключены, не смог просто выложить полностью проект, форум не дает.
Вот часть заголовочного файла
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class DictCell
{
public:
    DictCell(); // Конструктор без параметров
    DictCell(DictCell& iCell); // Конструктор копирования
    DictCell(string, unsigned int); // Конструктор с параметрами
    ~DictCell(); // Деструктор
    DictCell& operator=(const DictCell&);
    DictCell& operator=(DictCell* iCell)
    {
        return *iCell;
    };
    const void GetID(unsigned int&); // Получение ID ячейки
    unsigned int GetID();
    const void GetNWords(unsigned int&); // Получение количества слов в ячейке
    unsigned int GetNWords();
    const void GetContent(string&); // Получение содержания ячейки
    string GetContent();
    void Concat(const DictCell&); // Объединение ячеек
 
private:
    static unsigned int s_CellCount; // Счетчик количества ячеек
    unsigned int m_ID; // ID ячейки
    string m_sContent; // Содержание ячейки
    unsigned int m_nWords; // Количество слов в ячейке
    
 
};
unsigned int DictCell::s_CellCount = 0;
DictCell::DictCell() : m_ID(++s_CellCount), m_sContent("/0"), m_nWords(0)
{
}
DictCell::DictCell(string iContent, unsigned int iWords) : m_ID(++s_CellCount), m_sContent(iContent), m_nWords(iWords)
{
}
DictCell::DictCell(DictCell& iCell)
{
    m_ID = iCell.GetID();
    m_sContent = iCell.GetContent();
    m_nWords = iCell.GetNWords();
}
DictCell::~DictCell()
{
}
DictCell& DictCell::operator=(const DictCell& right)
{
    DictCell temp;
    temp.m_ID = right.m_ID;
    temp.m_sContent = right.m_sContent;
    temp.m_nWords = right.m_nWords;
    return temp;
}
const void DictCell::GetID(unsigned int& iID)
{
    iID=m_ID;
}
unsigned int DictCell::GetID()
{
    return m_ID;
}
const void DictCell::GetContent(string& iContent)
{
    iContent = m_sContent;
}
string DictCell::GetContent()
{
    return m_sContent;
}
const void DictCell::GetNWords(unsigned int& iWords)
{
    iWords = m_nWords;
}
unsigned int DictCell::GetNWords()
{
    return m_nWords;
    //return 157;
}
void DictCell::Concat(const DictCell& iCell)
{
    m_sContent += iCell.m_sContent;
    m_nWords += iCell.m_nWords;
    iCell.~DictCell();
}
Вот часть кода файла cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    DictCell C1("ads", 5432);
    DictCell C2(C1);
    CArray<DictCell, DictCell> CellAr;
    CellAr.Add(C2); //не работает
    CellAr.Add(C1); //не работает
    cout << CellAr.GetSize() //проверка просто
        << CellAr[0].GetID() 
        << CellAr[0].GetNWords()
        << endl;
    system("pause");
    return 0;
}
Где еще может косяки есть, подскажите пожалуйста.
А еще часто при компиляции пишет предупреждение что неоднозначная точка входа в программу и что использует по умолчанию точку.
Заранее спасибо

Добавлено через 45 минут
очень нужна помощь, народ, именно через CArray надо реализовать задание
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru