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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2009, 22:10   #1
Urbanajangla
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 2
По умолчанию Помогите разобратся... Наследование

Зачит есть базовый класс:
Код:
class СLogicElement{
public:
	СLogicElement(char *name = NULL, int inp_nmb = 0, bool *inpts = NULL );
	~СLogicElement();
	void SetName(char *);
	void SetInputs(bool *);
	virtual bool Evaluate();	
protected:
	char *Name;
	int inp_number; //number of inputs
	bool *inputs;//input values
};
#include "LogicElement.h"
#include <iostream>
CLogicElement::~CLogicElement(void)
{
	delete[] Name;
	inp_number = 0;
	delete[] inputs;
}

void CLogicElement::SetName(char *sender)
{
	Name = new char[strlen(sender)+1];
	strcpy_s(Name,sizeof(char),sender);
}
void CLogicElement::SetInputs(bool *sender)
{
	inputs = new bool[inp_number];
	while (*inputs++ = *sender++);
}
И его потомок:
Код:
#pragma once
#include "LogicElement.h"
class COr : public CLogicElement
{
public:
	COr(char *n, int nmb, bool *inp):CLogicElement(n,nmb,inp){};
	
	~COr(void){};
	void Print();
	bool Evaluate();
};
#include "Or.h"
using namespace std;
void COr::Print()
{
	cout<<"Name: "<<Name<<endl;
	cout<<"inputs: "<<inputs<<endl;//to edit
	cout<<"outputs: ";
}

bool COr::Evaluate()
{
	bool tmp = false;
	const bool *ptr = inputs;
	while (ptr != NULL)
	{
			tmp = *ptr & *(ptr+1); 
			ptr++;
	}
	return tmp;
}
при попытке создания
Код:
bool mas[3] = {true,false,true};
CLogicElement *C = new COr("Or",3,&mas[0]);
вылетает ошибка:
Error 1 error LNK2019: unresolved external symbol "public: __thiscall CLogicElement::CLogicElement(char *,int,bool *)" (??0CLogicElement@@QAE@PADHPA_N@Z) referenced in function "public: __thiscall COr::COr(char *,int,bool *)" (??0COr@@QAE@PADHPA_N@Z) Test.obj

Собственно говоря не знаю что делать.....

Модератор: тег CODE

Последний раз редактировалось Sazary; 23.05.2009 в 22:13.
Urbanajangla вне форума Ответить с цитированием
Старый 23.05.2009, 23:55   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Error 1 error LNK2019: unresolved external symbol "public: __thiscall CLogicElement::CLogicElement(char *,int,bool *)" (??0CLogicElement@@QAE@PADHPA_N@Z) referenced in function "public: __thiscall COr::COr(char *,int,bool *)" (??0COr@@QAE@PADHPA_N@Z) Test.obj
Т.к. вот содержимое вот этого файла:
Код:
#include "Or.h"
вы не показали, я закомментил эту строчку. Без нее у меня компилятор ругается только на функцию strcpy_s (описания которой, опять же, нет).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.05.2009, 00:17   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Нет реализации конструктора класса СLogicElement - вот и вся проблема.
А strcpy_s - это безопасная версия strcpy, которая навязывается последними компиляторами от майкрософт.
pu4koff вне форума Ответить с цитированием
Старый 24.05.2009, 03:16   #4
Urbanajangla
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 2
По умолчанию

Окей, с этим уже разобрался, даже сам))
Вопрос номер 2, деструктор. Как в классе COr организовать деструктор?
Urbanajangla вне форума Ответить с цитированием
Старый 24.05.2009, 09:43   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В СLogicElement деструктор виртуальным объявите, а в COr вроде в никакая память не выделяется и необходимости в деструкторе нет.
pu4koff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобратся с ListView Icor Win Api 3 01.05.2009 16:24
Помогите разобратся с макаронами Стася Microsoft Office Excel 8 15.10.2007 15:20
Помогите разобратся!!! rex2003 Свободное общение 1 18.02.2007 20:37