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

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

Войти
Регистрация
Восстановить пароль
 
BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
#1

не пойму в чем ошибка в классе - C++

11.01.2011, 20:55. Просмотров 320. Ответов 4
Метки нет (Все метки)

Всем привет, вот возник вопрос про ООП, написал два класса, один из которых унаследует другой, в обоих есть конструктор, но они отличаются интерфейсом, VC++ выдаешь ошибку, жалуется на конструктор подкласса, насколько известно нельзя конструкторы объявлять виртуальными, тогда как решить эту проблему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
//---------------------------------------------------------------------------
class Student {
        public:
        Student(const char* pName = "no name") : name(pName) {
                num++;
                cout << "construct object finished! " << name << "\n";
        }
        virtual ~Student() {
                num--;
                cout << "Descruct finishing yourself work...\n";
        }
        static int returnNum(int i) {
           if(i == 0)  return num;  else
                cout << "If you want get variable, give me a number = 0.\n";
                return false;
        }
        virtual const char* returnName() {
               return name;
        }
        protected:
        const char* nameTwo;
        const char* name;
        static int num;
};
int Student::num = 0;
//---------------------------------------------------------------------------
class Friends : public Student {
        Frineds(const char* pName) : Student(pName) {
             cout << "construct object finished! " << name << "\n";
        }
        ~Friends () {
               cout << "I have no friends";
        }
        const char* returnName() {
               return name;
        }
};
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
        Student* student = new Student("O`nill");
        Student studentOne("Andrew");
        cout << "All students " << Student::returnNum(0)<<endl;
        delete student;
        cout << "And now all students " << Student::returnNum(0);
        Friends fr("Richard");
 
        system("pause >> void");
        return 0;
}
//---------------------------------------------------------------------------
Если можно, то объясните как поступать в данных ситуациях, заранее всем благодарен!

Добавлено через 55 секунд
Цитата Сообщение от BTR Посмотреть сообщение
Frineds(const char* pName) : Student(pName)
Вот на эту строку жалуется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2011, 20:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не пойму в чем ошибка в классе (C++):

Не пойму в чем ошибка - C++
Дано натуральное число n. Найти наибольшее среди чисел ke^sin^2(k+1) (k=1, …, n), а также сумму этих чисел. #include &lt;iostream&gt; ...

Не пойму в чем ошибка - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int *pVar = new int; *pVar =...

Ошибка 2 error LNK2019, не пойму в чем ошибка - C++
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl game(void)&quot; (?game@@YAHXZ) в функции....

Не пойму в чем ошибка. Синтаксис - C++
#include &quot;stdafx.h&quot; #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; class degree { doubl...

Кусочные функции (не пойму в чем ошибка) - C++
Создать программу для вычисления значений функции в соответствии с заданным варианта. #include &lt;iostream.h&gt; #include &lt;math.h&gt; ...

Новичок не пойму с чем связана ошибка - C++
visual C ++ 2008 Express Edition скачал с официального сайта

4
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.01.2011, 21:00 #2
Внимательнее будьте))) И читайте, что за ошибку выдал компилятор, а не хватайтесь за голову, как только увидите слово error

C++
1
Friends(const char* pName) : Student(pName)
1
BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
11.01.2011, 21:07  [ТС] #3
тю блин, нашел ошибку, просто имя класса не правильно задал, но теперь выдает ошибку:
Error: "Friends::Friends(const char* pName)" - (Объявлено в строку #35) недоступно
Почему так? Скажите пожалуйста... А то новичек я в С++, а в PHP который я знаю хорошо, там все по-другому, что касается ООП

Добавлено через 4 минуты
Просто недавно начал изучать ООП
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
11.01.2011, 22:21 #4
компилятор же тебе пишет где ошибка
директиву public кто будет ставить??? не поставил, то конструкторы все приватные, и к ним нету доступа из вне!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
//---------------------------------------------------------------------------
class Student {
public:
    Student(const char* pName = "no name") : name(pName) {
        num++;
        cout << "construct object finished! " << name << "\n";
    }
    virtual ~Student() {
        num--;
        cout << "Descruct finishing yourself work...\n";
    }
    static int returnNum(int i) {
        if(i == 0)  return num;  else
            cout << "If you want get variable, give me a number = 0.\n";
        return false;
    }
    virtual const char* returnName() {
        return name;
    }
protected:
    const char* nameTwo;
    const char* name;
    static int num;
};
int Student::num = 0;
//---------------------------------------------------------------------------
class Friends : public Student
{
    public:
    Friends(const char* pName) : Student(pName) {
        cout << "construct object finished! " << name << "\n";
    }
    ~Friends () {
        cout << "I have no friends";
    }
    const char* returnName() {
        return name;
    }
};
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    Student* student = new Student("O`nill");
    Student studentOne("Andrew");
    cout << "All students " << Student::returnNum(0)<<endl;
    delete student;
    cout << "And now all students " << Student::returnNum(0);
    Friends fr("Richard");
 
    system("pause >> void");
    return 0;
}
//---------------------------------------------------------------------------
1
BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
11.01.2011, 22:32  [ТС] #5
Блин точно, спасибо, просто в билдере начал писать программу, а там сразу ошибки не выделяются и вообще не понятный какой-то для меня компилятор, вот и допустил ошибку, спс тебе
0
11.01.2011, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2011, 22:32
Привет! Вот еще темы с ответами:

Динамический массив указателей(не пойму в чем ошибка в коде) - C++
есть код: При попытки записи данных слетает на инициализации name..не могу понять,или память неправильно объявляю,или что другое... ...

Не пойму в чем ошибка кода. дан массив А размера N найти максимальный элемент из его элементов с нечетными номерами - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; #define MAX 100 int main(void) { setlocale(LC_CTYPE, &quot;rus&quot;); ...

не пойму в чем дело - C++
всем привет! такая вот у меня проблема: две сортировки должны отсортировать массивы из 1000, 5000 и 10000 элементов и подсчитать время...

Потоковый ввод из файла вместе с классом. Не пойму в чем причина - C++
Привет народ. У меня такая проблема. Пишу лабораторную, и не могу таким способом (показан ниже) ввести всю таблицу и сохранить внутри...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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