Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 02.03.2010, 02:18   #1
Android_ua
Пользователь
 
Регистрация: 02.11.2009
Сообщений: 11
Репутация: 10
По умолчанию Ошибка компиляции при вызове подпрограммы

Ночи доброй программеры. В общем такая проблема, было задание описать класс, вывести ряд символов(что я и сделал), вычеслить длину ряда символов(тоже сделал) и удалить из ряда все символы равные '5'. Последнюю подпрограмму я описал, но есть одно но, при компилировании компилятор ругается на эту функцию(удаления символов). В обще вот сам код:
Файл "line.h"
Код:
class line
{
public:
	line (char cA[15]);
	int length(char cA[15]);
	void del(char cA[15]);
private:
	char cA[15];
};
Файл "hlab1.5"
Код:
#include "stdafx.h"
#include "stdio.h"
#include "line.h"
#include "iostream"
#include "locale.h"
#include "conio.h"
using namespace std;

line::line (char cA[15])
{
	line::cA[15] = cA[15];
}
int line::length (char cA[15])
{
	int i;
	int rozmir;
	rozmir = 0;
	for (i=0;i<15;i++)
	{
		if (cA[i] != 0)
			rozmir = rozmir + 1;
		else
			i = 15;
	}
	return rozmir;
}
void del(char cA[15])
{
	int i, n;
	for(i;i<15;i++)
	{
		if (cA[i] == '5')
			for (n=i;n<15;n++)
				cA[n] = cA[n+1];
	}
}
void main()
{
	setlocale(LC_ALL, "");
	int i, flag;
	int size, check;
	char cArr[15];
	flag = 1;
	for (i=0;i<15;i++)
	{
		if (flag == 1)
		{
			cout << "Укажите " << i+1 <<"-й циферный символ строки:\n";
			cin >> cArr[i];
			if (cArr[i] == '0')
			{
				flag = 0;
				cArr[i] = 0;
			}
		}
		else
			cArr[i] = 0;
	}
	cout << "Строка:";
	for (i=0;i<15;i++)
		cout << cArr[i];
	cout << "\nНажмите ENTER для продолжения\n";
	getch();
	line stroka(cArr);
	size = stroka.length(cArr);
	cout << "Длинна строки: " << size << " символов\n";
	cout << "\nНажмите ENTER для продолжения\n";
	getch();

	stroka.del(cArr);//Если закомментить эту строку то все откомпилируется
	for (i=0;i<15;i++)
		cout << cArr[i];
	cout << "Длинна строки: " << size << " символов\n";
	cout << "\nНажмите ENTER для выхода\n";
}
А вот что пишет:
  1. Error 5 error LNK2001: unresolved external symbol "public: void __thiscall line:el(char * const)" (?del@line@@QAEXQAD@Z) hlab1.5.obj
  2. Error 6 fatal error LNK1120: 1 unresolved externals C:\Users\Андрей\Documents\Visual Studio 2005\Projects\hlab1.5\Debug\hlab1.5 .exe
P. S. Использую Visual Studio 2005
Android_ua вне форума   Ответить с цитированием
Старый 02.03.2010, 02:47   #2
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

Код:
void line::del(char cA[15])
__________________
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума   Ответить с цитированием
Старый 02.03.2010, 03:25   #3
_Ч_
Форумчанин
 
Регистрация: 07.01.2010
Сообщений: 141
Репутация: 25
По умолчанию

про ошибку линковки уже сказали. про странные методы в классе - нет.
по идее, ф-ии length и del не должны принимать никаких аргументов, а работать с мембером класса line, т.е с line::cA. Иначе, нет смысла делать их мемберами класса. В вашей реализации они должны быть свободными функциями.
_Ч_ вне форума   Ответить с цитированием
Старый 02.03.2010, 13:13   #4
Android_ua
Пользователь
 
Регистрация: 02.11.2009
Сообщений: 11
Репутация: 10
По умолчанию

Гром, спасибо, во я тупанул, не заметил))
Android_ua вне форума   Ответить с цитированием
Старый 02.03.2010, 13:20   #5
Android_ua
Пользователь
 
Регистрация: 02.11.2009
Сообщений: 11
Репутация: 10
По умолчанию

_Ч_
Я про нюансы еще не знаю, только начал ООП учить, но все равно спасибо
Android_ua вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при многократном вызове макроопределения xVxSeRGxVx Assembler 10 02.03.2010 00:46
Ошибка при компиляции 7B! Общие вопросы .NET 7 08.01.2010 14:11
Ошибка при компиляции MasterofCDM Общие вопросы Delphi 2 11.11.2008 10:35


17:47.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.