Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Определение класса

76K
08 января 2012 года
kmaks
10 / / 10.12.2011
Код:
#include "stdafx.h"
#include "iostream"

using namespace std;

class ClassB;

class ClassA{
    public:
           void View(){
                cout<<"This is ClassA"<<endl;
               
                ClassB B;
                B.View();
            }
};

class ClassB{
   
    public:
            void View(){
                cout<<"This is ClassB"<<endl;
            }
};


int main(int argc, char* argv[]){

    ClassA.View();


    system("pause");
    return 0;
}


Нужно в классе ClassA создать экземпляр класса ClassB, вызвать метод View();. В книге "C++ для чайников" приведена следующая программа:

Код:
class Student;

class Teacher{

    friend void registration();

    protected:
        int noStudents;
        Student *pList[100];

    public:
        void assignGrades();
};

class Student
{
    friend void registration();

    protected:
        Teacher *рТ;
        int semesterHours;
        float gpa;
};


Для меня в нем главное понять как объявлять, "прототип" что ли, класса. Как я понял нужно вначале описания всех классов указать class ИмяКласса;. Не проканало. Книжка отсканирована, еще и распознана криво. Так что, если какие ошибки в коде есть, то не обращайте внимание, для меня на данном этапе это не главное.

И еще. Есть ли форматирование кода на сайте? Код вообще не читаем без подсветки.
240
11 января 2012 года
aks
2.5K / / 14.07.2006
Код вполне читаем без подсветки.
Вопрос то собственно в чем?
В вашем примере кстати достаточно описать сам класс B выше чем A.
76K
13 января 2012 года
kmaks
10 / / 10.12.2011
Да чтож такое то? Я на каком форуме не спрошу - всегда один ответ: размести объявление выше класса.
А если будет 3 класса, а из последнего я должен буду вызвать метод класса первого, из первого вызвать метод второго, из которого вызвать метод третьего? Что и куда мне переставлять? :D

Вопрос вот в чем. Занимаюсь по книжке "C++ для чайников". Книжка очень плохого качества. И вот, допустим без перестановки нужно вызвать метод.

В книжке все просто, так:
 
Код:
class ClassB;

и все. Но ничего не получается.
14
13 января 2012 года
Phodopus
3.3K / / 19.06.2008
Тогда это (скорее всего) будет ооочень неправильная архитектура. Или используй интерфейсы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог