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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ledkets
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 25
#1

Компилятор считает функцию неопределенной - C++

19.02.2012, 19:13. Просмотров 348. Ответов 3
Метки нет (Все метки)

Для каждого класса есть свой заголовочный файл. В первом классе находится абстрактный метод. Второй класс, дочерний от первого, реализует этот метод, третий, просто имеет в себе объект второго класса. Проблема в том, что когда я создаю в main'е объект третъего класса, появляется ошибка: "Error 1 error LNK2001: unresolved external symbol "public: virtual void __thiscall AbstractClass::abstractMethod(void)" (?abstractMethod@AbstractClass@@UAEXXZ) C:\Documents and Settings\Username\My documents\Visual Studio 2010\Projects\consol_1\consol_1\main.obj consol_1" То есть, как я понял, компилятор ругается на то, что не реализован абстрактный метод abstractMethod() в первом классе.

AbstractClass.h (первый класс)
C++
1
2
3
4
5
6
#pragma once
 
class AbstractClass{
public:
    virtual void abstractMethod();
};
InheritsAbstractClass.h(второй класс)

C++
1
2
3
4
5
6
7
#pragma once
 
#include "AbstractClass.h"
 
class InheritsAbstractClass: public AbstractClass{
    void abstractMethod(){};
};
UsesInheritsAbstractClass.h(третий класс)

C++
1
2
3
4
5
6
7
8
#pragma once
 
#include "InheritsAbstractClass.h"
 
 
class UsesInheritsAbstractClass{
public: InheritsAbstractClass IAC;
};
main.h
C++
1
2
3
4
5
6
7
#include "UsesInheritsAbstractClass.h"
int main(int,char**)
{
    UsesInheritsAbstractClass UIAC;
 
    return 0;
};
Подскажите пожалуйста, в чем может быть дело?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 19:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Компилятор считает функцию неопределенной (C++):

компилятор считает объект l-value, но объект таковым не является - C++
итак есть базовый абстрактный класс Дерево, есть два его наследника Плодовое Дерево и Лесное Дерево. Также существует класс Контейнер...

Неправильно считает функцию вычисления суммы элементов массива - C++
Добрый день! Имеется код, но функция неправильно выводит результат. Подскажите, что неверно. #include "stdafx.h" #include "math.h" ...

Компилятор не позволяет создать функцию - C++
Ошибка в том , что он не позволяет мне создать фунцию Running Выдаёт след. ошибки: 1>c:\users\andres coder\desktop\projects\c++...

Компилятор не находит функцию GetUserName - C++
#include "stdafx.h" #include <iostream> #include <Windows.h> #include <locale> using namespace std; BOOL GetUserName( ...

Компилятор ругается на функцию strncat - C++
#include <iostream> #include <string> using namespace std; long p,x,i,j,k,d,l; char t,s; void prefix() {

Описать рекурсивную функцию, которая считает количество пропусков в тексте - C++
Необходима помощь, нужно написать программу, которая считает количество пропусков в тексте. Текст заканчивается точкой или запятой. Спасибо!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.02.2012, 19:20 #2
Цитата Сообщение от ledkets Посмотреть сообщение
#include "UsesInheritsAbstractClass.h"
int main(int,char**)
{
* * * * UsesInheritsAbstractClass UIAC;
};
Лишняя точка с запятой
Попробуйте так, конечно если по смыслу подходит
C++
1
2
3
4
5
class AbstractClass
{
public:
        virtual void abstractMethod() = 0;
};
1
ledkets
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 25
19.02.2012, 19:34  [ТС] #3
Спасибо, помогло. Правда не совсем понятно, почему добавленное "=0" исправило ошибку. Может быть есть какой-нибудь материал на эту тему?
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.02.2012, 19:37 #4
Цитата Сообщение от ledkets Посмотреть сообщение
Правда не совсем понятно, почему добавленное "=0" все исправило.
Добавление чистой виртуальной функции, для того, что класс стал абстрактным. Литературы полно, прочитайте про виртуальные функции.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 19:37
Привет! Вот еще темы с ответами:

Написать функцию, что считает площадь и длину стороны параллелограмма - C++
Даны параллелограммы с координатами своих вершин. Вывести номер параллелограмма у которого наибольшая площадь. Написать функцию для...

Разработать функцию, которая считает среднее арифметическое и геометрическое массива чисел - C++
Я что-то набросала...но в любом случае куча ошибок и недочётов. Помогите с этим делом Буду очень благодарна #include<iostream> ...

Компилятор не принимает объявление указателя на функцию - C++
Портирую библиотеку коннектора на си для tarantool. Код целиком тут. Туллчейн - cygwin - cmake - clion. При сборке возникает две...

Dev c++, компилятор не понимает функцию toupper() - C++
Короче, вот такая штука; когда хотел использовать функцию touper(), заголовка <cctype>, компилятор эту функцию воспринимает за переменную(...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.02.2012, 19:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru