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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

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

Ночи доброй программеры. В общем такая проблема, было задание описать класс, вывести ряд символов(что я и сделал), вычеслить длину ряда символов(тоже сделал) и удалить из ряда все символы равные '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, 01:47   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

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

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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при многократном вызове макроопределения xVxSeRGxVx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 01.03.2010 23:46
Ошибка при компиляции 7B! Общие вопросы .NET 7 08.01.2010 13:11
Ошибка при компиляции MasterofCDM Общие вопросы Delphi 2 11.11.2008 09:35


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS