Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 21:50   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию Абстракция текста - другая ошибка[C++]

Вот при компиляции выдает несколько ошибок в 2-х случаях, напишите пожалуйста в коде как должно быть правильно:
Код подправленной программы:
Код:
//Row.h
#include <string>
#include <iostream>
using namespace std;
class Row
{
public:
    string dataRow;
        Row();
        Row(string);
};
 
//text.h
#include "Row.h"
 
const int countRows = 100;
 
class Texts
{
public:
        Texts();
        void addRows(string str);
        void removeAll();
        void removeRow(int numberRow);
        string getMaxLenght();
        string ToString();
 
        Row texte[100];
        int amountRows;
};
 
//Row.cpp
#include "stdafx.h"
#include "Row.h"
 
Row::Row()
{
}
 
Row::Row(string str)
{
        dataRow = str;
}
 
//text.cpp
#include "stdafx.h"
#include "text.h"
 
void Texts::addRows(string str)
{
        texte[amountRows].dataRow = str;
    amountRows++;
}
 
void Texts::removeRow(int numberRow)
{
        for (int i = numberRow; i < (countRows - 1); i++)
        {
                texte[i] = texte[i+1];
        }
        texte[countRows - 1].dataRow = "";
        amountRows--;
}
 
void Texts::removeAll()
{
        for (int i = 0; i<countRows; i++)
        {
                texte[i].dataRow ="";
        }
        amountRows = 0;
}
 
string Texts::getMaxLenght()
{        
        string max = texte[0].dataRow;
        for (int i = 1; i < amountRows; i++)
        {
                if (texte[i].dataRow.length() > max.length())
                {
                        max = texte[i].dataRow;
                }
        }
    return max;
}
 
string Texts::ToString()
{
        string str = "";
        for (int i = 0; i < amountRows; i++)
        {
                str = str + " " + texte[i].dataRow;
        }
 
        return str;
}
//main.cpp
#include "text.h"
#include "stdafx.h"
void main()
{
        cout<<"Введите количество строчек: ";
        int countRow;
        cin>>countRow;
        cout<<"Введите строчку: ";
        Texts objText;
        string temp;
        
        for (int i=0; i < countRow; i++)
        {
                cin>>temp;
                objText.addRows(temp);
        }
 
        cout<<"----\n\n"<<objText.ToString()<<"\n----\n";
 
        cout<<"\nВведите номер строчки: ";
        int numberOfRow;
        cin>>numberOfRow;
 
        if (numberOfRow < countRow)
        {
                objText.removeRow(numberOfRow - 1);
        }
 
    cout<<"----\n\n"<<objText.ToString()<<"\n----\n";
        
        cout<<"\nСамая длинная строчка в тексте: "<<objText.getMaxLenght();
 
        cout<<"\nОчистка текста.";
        objText.removeAll();
        cout<<"----\n\n"<<objText.ToString()<<"\n----\n";
}
Заинтересовал в программе этот участок кода, здесь я забыл объявить переменную dataRow
Код:
//Row.cpp
#include "stdafx.h"
#include "Row.h"
 
Row::Row()
{
}
 
Row::Row(string str)
{
        dataRow = str;
}
если напишу тип char dataRow=str;, выдаст ошибку
Цитата:
d:\мои документы\visual studio 2008\projects\laba3_class_conteiner _cpp\laba3_class_conteiner_cpp\row. cpp(12) : error C2440: 'initializing' : cannot convert from 'std::string' to 'char'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
а напишу string dataRow = str;
выдает следующую ошибку:
Цитата:
main.obj : error LNK2019: unresolved external symbol "public: __thiscall Texts::Texts(void)" (??0Texts@@QAE@XZ) referenced in function _main
D:\Мои документы\Visual Studio 2008\Projects\laba3_class_conteiner _cpp\Debug\laba3_class_conteiner_cp p.exe : fatal error LNK1120: 1 unresolved externals
ArniLand вне форума Ответить с цитированием
Старый 29.03.2010, 22:25   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
main.obj : error LNK2019: unresolved external symbol "public: __thiscall Texts::Texts(void)" (??0Texts@@QAE@XZ) referenced in function _main
Где реализация конструктора Texts?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм поиска текста Рабина на Delphi 7 выходит ошибка Des Общие вопросы Delphi 14 15.05.2012 11:14
Класс контейнер - абстракция текста [C++] ArniLand Общие вопросы C/C++ 4 29.03.2010 15:02
ошибка при поиске текста в файле с настройками _Mickey_ Помощь студентам 0 29.12.2009 22:11
Ошибка при сохранении текста перед выходом Shouldercannon Общие вопросы Delphi 1 17.12.2008 14:42
Подотчеты но другая проблема VolkasHanas Microsoft Office Access 2 10.11.2008 15:51